PHP MySQLฟังก์ชัน: mysqli_query, mysqli_connect, mysqli_fetch_array

PHP มีคอลเลกชันฟังก์ชันในตัวมากมายสำหรับการจัดการ MySQL ฐานข้อมูล

ฟังก์ชั่น PHP mysqli_connect

ฟังก์ชัน PHP mysql connect ใช้เพื่อเชื่อมต่อกับ MySQL เซิร์ฟเวอร์ฐานข้อมูล

มีรูปแบบประโยคดังนี้

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

ที่นี่

  • “$db_handle” คือตัวแปรทรัพยากรการเชื่อมต่อฐานข้อมูล
  • “mysqli_connect(…)” คือฟังก์ชันสำหรับเชื่อมต่อฐานข้อมูล php
  • “$server_name” คือชื่อหรือที่อยู่ IP ของเซิร์ฟเวอร์ที่โฮสต์ MySQL เซิร์ฟเวอร์
  • “$user_name” เป็นชื่อผู้ใช้ที่ถูกต้อง MySQL เซิร์ฟเวอร์
  • “$password” เป็นรหัสผ่านที่ถูกต้องซึ่งเชื่อมโยงกับชื่อผู้ใช้ MySQL เซิร์ฟเวอร์

ฟังก์ชั่น PHP mysqli_select_db

ฟังก์ชัน mysqli_select_db ใช้เพื่อเลือกฐานข้อมูล

มีรูปแบบประโยคดังนี้

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

ที่นี่

  • “mysqli_select_db(…)” คือฟังก์ชันการเลือกฐานข้อมูลที่คืนค่าเป็นจริงหรือเท็จ
  • “$database_name” คือชื่อของฐานข้อมูล
  • “$link_identifier” เป็นทางเลือก ซึ่งใช้เพื่อส่งผ่านลิงก์การเชื่อมต่อเซิร์ฟเวอร์

ฟังก์ชั่น PHP mysqli_query

ฟังก์ชัน mysqli_query ใช้เพื่อดำเนินการ SQL คำสั่ง

ฟังก์ชั่นนี้ใช้เพื่อดำเนินการประเภทแบบสอบถามต่อไปนี้

  • สิ่งที่ใส่เข้าไป
  • เลือก
  • บันทึก
  • ลบ

มีรูปแบบประโยคดังนี้

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

ที่นี่

  • “mysqli_query(…)” คือฟังก์ชันที่ดำเนินการแบบสอบถาม SQL
  • “$query” คือแบบสอบถาม SQL ที่จะดำเนินการ
  • “$link_identifier” เป็นทางเลือก ซึ่งสามารถใช้เพื่อส่งผ่านลิงก์การเชื่อมต่อเซิร์ฟเวอร์ได้

ฟังก์ชั่น PHP mysqli_num_rows

ฟังก์ชัน mysqli_num_rows ใช้เพื่อรับจำนวนแถวที่ส่งคืนจากแบบสอบถามแบบเลือก

มีรูปแบบประโยคดังนี้

<?php
mysqli_num_rows($result);
?>

ที่นี่

  • “mysqli_num_rows(…)” คือฟังก์ชันนับแถว
  • “$result” คือชุดผลลัพธ์ mysqli_query

ฟังก์ชั่น PHP mysqli_fetch_array

ฟังก์ชัน mysqli_fetch_array ใช้ในการดึงข้อมูลอาร์เรย์แถวจากชุดผลลัพธ์ของแบบสอบถาม

มีรูปแบบประโยคดังนี้

<?php
mysqli_fetch_array($result);
?>

ที่นี่

  • “mysqli_fetch_array(…)” คือฟังก์ชันในการดึงข้อมูลอาร์เรย์แถว
  • “$result” คือผลลัพธ์ที่ส่งคืนโดยฟังก์ชัน mysqli_query

ฟังก์ชั่น PHP mysqli_close

ฟังก์ชัน mysqli_close ใช้เพื่อปิดการเชื่อมต่อฐานข้อมูลที่เปิดอยู่

มีรูปแบบประโยคดังนี้

<?php
mysqli_close($db_handle);
?>

ที่นี่

  • “mysqli_close(…)” คือฟังก์ชัน PHP
  • “$link_identifier” เป็นทางเลือก ซึ่งใช้เพื่อส่งผ่านทรัพยากรการเชื่อมต่อเซิร์ฟเวอร์

ลองดูตัวอย่างเชิงปฏิบัติที่ใช้ประโยชน์จากฟังก์ชันเหล่านี้

การสร้างไฟล์ MySQL ฐานข้อมูล กวดวิชานี้ถือว่าความรู้ของ MySQL และ SQL หากคำศัพท์เหล่านี้ไม่คุ้นเคยกับคุณ โปรดอ้างอิงถึงของเรา MySQL และบทช่วยสอน SQL

เราจะสร้างฐานข้อมูลอย่างง่ายที่เรียกว่า my_personal_contacts โดยมีตารางเดียวเท่านั้น

ด้านล่างนี้เป็นขั้นตอนในการสร้างฐานข้อมูลและตาราง

  • เชื่อมต่อกับ MySQL โดยใช้เครื่องมือการเข้าถึงที่คุณชื่นชอบเช่น MySQL workbench, phpMyAdmin ฯลฯ
  • สร้างฐานข้อมูลชื่อ 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 
?>

การดำเนินการเอาต์พุตโค้ดข้างต้น “โพไซดอนถูกเพิ่มลงในรายชื่อผู้ติดต่อของคุณสำเร็จแล้ว” กลับไปที่ตัวอย่างแบบสอบถามแบบเลือกและดึงข้อมูลผู้ติดต่อของคุณอีกครั้ง

ดูว่าโพไซดอนถูกเพิ่มเข้าไปในรายการของคุณหรือไม่

การอัปเดตระเบียน ตอนนี้เรามาดูตัวอย่างที่อัปเดตระเบียนในฐานข้อมูล

สมมติว่าโพไซดอนได้เปลี่ยนหมายเลขติดต่อและที่อยู่อีเมลของเขา

<?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 loop

<?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 และส่งไดรเวอร์ฐานข้อมูล ชื่อเซิร์ฟเวอร์และฐานข้อมูล รหัสผู้ใช้ และรหัสผ่าน”
  • “$pdo->setAtt…” ตั้งค่าโหมดข้อผิดพลาด PDO และแอตทริบิวต์โหมดข้อยกเว้น
  • “$pdo->exec('SET NA…” กำหนดรูปแบบการเข้ารหัส

ODBC ODBC เป็นตัวย่อของ Open Database Connectivity ซึ่งมีรูปแบบพื้นฐานดังต่อไปนี้

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

ที่นี่

  • “odbc_connect” เป็นฟังก์ชัน PHP ในตัว
  • “$dsn” คือชื่อแหล่งข้อมูล ODBC
  • “$user_name” เป็นทางเลือก โดยใช้สำหรับชื่อผู้ใช้ ODBC
  • “$password” เป็นทางเลือก โดยใช้สำหรับรหัสผ่าน ODBC

ตัวอย่างที่ใช้ถือว่าคุณ

  • กำลังใช้งาน Windows OS
  • คุณได้สร้างลิงก์ 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 Data Object; มันถูกใช้เพื่อเชื่อมต่อกับเอ็นจิ้นฐานข้อมูลต่าง ๆ โดยใช้อ็อบเจ็กต์เดียวกัน
  • PHP ใช้ฟังก์ชัน odbc_connect เพื่อจัดการฐานข้อมูลผ่าน ODBC