PHP MySQLi 함수: mysqli_query, mysqli_connect, mysqli_fetch_array

PHP에는 MySQL 데이터베이스를 조작하기 위한 풍부한 내장 함수 모음이 있습니다.

PHP mysqli_connect 함수

PHP mysql 연결 기능은 MySQL 데이터베이스 서버에 연결하는 데 사용됩니다.

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>

이리,

  • “$db_handle”은 데이터베이스 연결 리소스 변수입니다.
  • "mysqli_connect(…)"는 PHP 데이터베이스 연결을 위한 함수입니다.
  • "$server_name"은 MySQL 서버를 호스팅하는 서버의 이름 또는 IP 주소입니다.
  • "$user_name"은 MySQL 서버에서 유효한 사용자 이름입니다.
  • "$password"는 MySQL 서버의 사용자 이름과 연결된 유효한 비밀번호입니다.

PHP mysqli_select_db 함수

mysqli_select_db 함수는 데이터베이스를 선택하는 데 사용됩니다.

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php
mysqli_select_db($db_handle,$database_name);
?>

이리,

  • "mysqli_select_db(…)"는 true 또는 false를 반환하는 데이터베이스 선택 함수입니다.
  • "$database_name"은 데이터베이스의 이름입니다.
  • "$link_identifier"는 선택 사항이며 서버 연결 링크를 전달하는 데 사용됩니다.

PHP mysqli_query 함수

mysqli_query 함수는 실행에 사용됩니다. SQL 검색어.

이 함수는 다음을 실행하는 데 사용될 수 있습니다.wing 쿼리 유형;

  • 끼워 넣다
  • 선택
  • 업데이트
  • 삭제

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php
mysqli_query($db_handle,$query) ;
?>

이리,

  • "mysqli_query(…)"는 SQL 쿼리를 실행하는 함수입니다.
  • "$query"는 실행할 SQL 쿼리입니다.
  • "$link_identifier"는 선택 사항이며 서버 연결 링크를 전달하는 데 사용할 수 있습니다.

PHP mysqli_num_rows 함수

mysqli_num_rows 함수는 선택 쿼리에서 반환된 행 수를 가져오는 데 사용됩니다.

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php
mysqli_num_rows($result);
?>

이리,

  • "mysqli_num_rows(…)"는 행 개수 함수입니다.
  • "$result"는 mysqli_query 결과 세트입니다.

PHP mysqli_fetch_array 함수

mysqli_fetch_array 함수는 쿼리 결과 세트에서 행 배열을 가져오는 데 사용됩니다.

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php
mysqli_fetch_array($result);
?>

이리,

  • "mysqli_fetch_array(…)"는 행 배열을 가져오는 함수입니다.
  • "$result"는 mysqli_query 함수가 반환한 결과입니다.

PHP mysqli_close 함수

mysqli_close 함수는 열려 있는 데이터베이스 연결을 닫는 데 사용됩니다.

그것은 다음과 같은 내용을 가지고 있습니다wing 통사론.

<?php
mysqli_close($db_handle);
?>

이리,

  • "mysqli_close(...)"는 PHP 함수입니다.
  • "$link_identifier"는 선택 사항이며 서버 연결 리소스를 전달하는 데 사용됩니다.

이러한 기능을 활용하는 실제 사례를 살펴보겠습니다.

MySQL 데이터베이스 생성 이 튜토리얼에서는 MySQL 및 SQL에 대한 지식이 있다고 가정합니다. 이러한 용어가 익숙하지 않은 경우 MySQL 및 SQL 튜토리얼을 참조하세요.

하나의 테이블만 포함하는 my_personal_contacts라는 간단한 데이터베이스를 생성하겠습니다.

다음은 데이터베이스와 테이블을 생성하는 단계입니다.

  • MySQL Workbench, phpMyAdmin 등 즐겨 사용하는 액세스 도구를 사용하여 MySQL에 연결하세요.
  • my_person_contacts라는 데이터베이스를 생성합니다.
  • 아래에 표시된 스크립트를 실행하여 테이블을 만들고 일부 더미 데이터를 삽입합니다.
<?php
CREATE TABLE IF NOT EXISTS `my_contacts` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `full_names` varchar(255) NOT NULL,

  `gender` varchar(6) NOT NULL,

  `contact_no` varchar(75) NOT NULL,

  `email` varchar(255) NOT NULL,

  `city` varchar(255) NOT NULL,

  `country` varchar(255) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES

(1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'),

(2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'),

(3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'),

(4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy');
?>

이제 PHP에서 조작할 데이터베이스가 설정되었습니다.

데이터베이스에서 레코드 읽기 이제 데이터베이스의 레코드를 인쇄하는 프로그램을 만들어 보겠습니다.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error());
    
	//if connection failed output error message 
    if (!mysqli_select_db($dbh,'my_personal_contacts'))     
    
	die("Unable to select database: " . mysqli_error()); 
    //if selection fails output error message 
    
	$sql_stmt = "SELECT * FROM my_contacts"; 
    //SQL select query 
    
     $result = mysqli_query($dbh,$sql_stmt);
     //execute SQL statement 
     
	if (!$result)     
		die("Database access failed: " . mysqli_error()); 
    	//output error message if query execution failed 
        
		$rows = mysqli_num_rows($result); 
   		// get number of rows returned 
    
	if ($rows) {     
    
	while ($row = mysqli_fetch_array($result)) {         
		echo 'ID: ' . $row['id'] . '<br>';         
		echo 'Full Names: ' . $row['full_names'] . '<br>';        
		echo 'Gender: ' . $row['gender'] . '<br>';         
		echo 'Contact No: ' . $row['contact_no'] . '<br>';         
		echo 'Email: ' . $row['email'] . '<br>';         
		echo 'City: ' . $row['city'] . '<br>';         
		echo 'Country: ' . $row['country'] . '<br><br>';     
	} 
} 
mysqli_close($dbh); //close the database connection 
?>

위 코드를 실행하면 아래 다이어그램에 표시된 결과가 반환됩니다.

PHP: MySQL 함수

새 레코드 삽입

이제 테이블에 새 레코드를 추가하는 예를 살펴보겠습니다. 아래 코드는 구현을 보여줍니다.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; 
	$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; 
    
	$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement 
    
	if (!$result)     
		die("Adding record failed: " . mysqli_error()); 
		//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
        
 mysqli_close($dbh); //close the database connection 
?>

위의 코드 출력 "포세이돈이 연락처 목록에 성공적으로 추가되었습니다"를 실행하면 선택 쿼리 예제로 돌아가서 연락처를 다시 검색합니다.

포세이돈이 목록에 추가되었는지 확인하세요.

레코드 업데이트 이제 데이터베이스의 레코드를 업데이트하는 예를 살펴보겠습니다.

포세이돈이 연락처와 e를 변경했다고 가정해 봅시다.mail 주소.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server 
    
	if (!$dbh)    
	die("Unable to connect to MySQL: " . mysqli_error()); 
    //if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
	//SQL select query $sql_stmt .= " WHERE `id` = 5"; 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement if (!$result)     
    
	die("Deleting record failed: " . mysqli_error()); 
	//output error message if query execution failed 
    
	echo "ID number 5 has been successfully updated"; 
mysqli_close($dbh); //close the database connection 
?>

기록 삭제

이제 데이터베이스에서 레코드를 제거하는 예를 살펴보겠습니다. Venus가 우리에 대한 접근 금지 명령을 받았고 우리가 그녀의 연락처 정보를 우리 사이트에서 삭제해야 한다고 가정해 보겠습니다. 데이터베이스.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server
    
	if (!$dbh)     
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysqli_error()); 
	//if selection failes output error message $id = 4; 
	//Venus's ID in the database 
    
	$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; 
	//SQL Delete query 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement 
    
	if (!$result)     
	die("Deleting record failed: " . mysqli_error());
	//output error message if query execution failed 
    
	echo "ID number $id has been successfully deleted"; 
mysqli_close($dbh); //close the database connection 
?>

PHP 데이터 액세스 객체 PDO

PDO는 MySQL, PostGres, MS SQL Server 등과 같은 다양한 데이터베이스 엔진을 조작할 수 있는 클래스입니다.

아래 코드는 PDO 객체를 이용한 데이터베이스 접근 방법을 보여준다.

참고 : 아래 코드에서는 SQL 언어, 배열, 예외 처리 및 foreach 루프에 대한 지식이 있다고 가정합니다.

<?php 
	try {    
	$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');     
    
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     
	$pdo->exec('SET NAMES "utf8"');     
    
	$sql_stmt = "SELECT * FROM `my_contacts`";     
	$result = $pdo->query($sql_stmt);     
	$result->setFetchMode(PDO::FETCH_ASSOC);     
	$data = array();     
	foreach ($result as $row) {         
	$data[] = $row;     
  }     
print_r($data); 
} 
catch (PDOException $e) {     
	echo $e->getMessage(); 
} 
?>

이리,

  • "try{...catch...}"는 예외 처리 블록입니다.
  • “$pdo = new PDO(“mysql…”은 PDO 객체의 인스턴스를 생성하고 데이터베이스 드라이버, 서버 및 데이터베이스 이름, 사용자 ID 및 비밀번호를 전달합니다.
  • "$pdo->setAtt…"는 PDO 오류 모드 및 예외 모드 속성을 설정합니다.
  • "$pdo->exec('SET NA…"는 인코딩 형식을 설정합니다.

ODBC ODBC는 Open Database Connectivity의 약어입니다. 그것은 다음과 같은 내용을 가지고 있습니다wing 기본 구문.

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

이리,

  • "odbc_connect"는 PHP 내장 함수입니다.
  • "$dsn"은 ODBC 데이터 소스 이름입니다.
  • "$user_name"은 선택 사항이며 ODBC 사용자 이름에 사용됩니다.
  • "$password"는 선택사항이며 ODBC 비밀번호에 사용됩니다.

사용된 예는 귀하를 가정합니다.

  • Windows OS를 사용하고 있습니다
  • Northwind에 대한 ODBC 링크를 만들었습니다. Microsoft Northwind라는 데이터베이스에 액세스합니다.

다음은 ODBC 데이터 액세스를 위한 구현 코드입니다.

<?php 
	$dbh = odbc_connect('northwind', '', ''); 
	if (!$dbh) {     
	exit("Connection Failed: " . $dbh); 
} 
	$sql_stmt = "SELECT * FROM customers"; 
	$result = odbc_exec($dbh, $sql_stmt); 
	if (!$result) {     
	exit("Error access records"); 
} 
	while (odbc_fetch_row($result)) {     
	$company_name = odbc_result($result, "CompanyName");    
	$contact_name = odbc_result($result, "ContactName");     
	echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
} 
odbc_close($dbh); 
?>

요약

  • MySQL의 대부분의 웹 호스팅 서버에서 사용할 수 있는 오픈 소스 관계형 데이터베이스 관리입니다.
  • PHP에는 MySQL 작업을 단순화하는 풍부한 내장 함수 모음이 있습니다.
  • PDO는 PHP 데이터 개체의 약어입니다. 동일한 객체를 사용하여 다른 데이터베이스 엔진에 연결하는 데 사용됩니다.
  • PHP는 odbc_connect 함수를 사용하여 ODBC를 통해 데이터베이스를 조작합니다.