ล่าสุดการพัฒนาเว็บบทเรียน
×

PHP เกี่ยวกับการสอน

PHP บ้าน PHP แนะนำ PHP ติดตั้ง PHP วากยสัมพันธ์ PHP ตัวแปร PHP Echo / พิมพ์ PHP ชนิดข้อมูล PHP เงื่อนไข PHP ค่าคงที่ PHP ผู้ประกอบการ PHP If...Else...Elseif PHP Switch PHP ในขณะที่ลูป PHP สำหรับลูป PHP ฟังก์ชั่น PHP แถว PHP เรียงลำดับอาร์เรย์ PHP Superglobals

PHP การจัดการ

PHP ฟอร์ม การจัดการ PHP ฟอร์ม การตรวจสอบ PHP ฟอร์ม จำเป็นต้องใช้ PHP ฟอร์ม URL/E-mail PHP ฟอร์ม สมบูรณ์

PHP สูง

PHP อาร์เรย์หลายมิติ PHP วันและเวลา PHP ประกอบด้วย PHP ไฟล์ การจัดการ PHP ไฟล์ เปิด / อ่าน PHP ไฟล์ สร้าง / เขียน PHP ไฟล์ อัปโหลด PHP Cookies PHP Sessions PHP ฟิลเตอร์ PHP Filters สูง PHP ผิดพลาด การจัดการ PHP ข้อยกเว้น

MySQL Database

MySQL ฐานข้อมูล MySQL สัมพันธ์ MySQL Create DB MySQL Create ตาราง MySQL Insert Data MySQL รับ ID เข้าครั้งสุดท้าย MySQL ใส่หลาย MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX แนะนำ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาสด AJAX RSS Reader AJAX โพลล์

PHP Examples

PHP ตัวอย่าง PHP ทดสอบ PHP ใบรับรอง

PHP การอ้างอิง

PHP แถว PHP ปฏิทิน PHP วันที่ PHP ไดเรกทอรี PHP ผิดพลาด PHP ระบบแฟ้ม PHP กรอง PHP FTP PHP HTTP PHP Libxml PHP จดหมาย PHP คณิตศาสตร์ PHP อื่น ๆ PHP MySQLi PHP SimpleXML PHP เชือก PHP XML PHP Zip PHP ช่วงเวลา

 

PHPเชื่อมต่อกับ MySQL


PHP 5 และต่อมาสามารถทำงานร่วมกับฐานข้อมูล MySQL โดยใช้:

  • ขยาย MySQLi (the "i" stands for improved)
  • PDO (PHP Data Objects)

รุ่นก่อนหน้า PHP ใช้นามสกุลของ MySQL อย่างไรก็ตามส่วนขยายนี้ได้รับการยกเลิกในปี 2012


ฉันจึงควรใช้ MySQLi หรือ PDO?

หากคุณต้องการคำตอบสั้น ๆ ก็จะเป็น "Whatever you like"

ทั้งสอง MySQLi และ PDO มีข้อได้เปรียบของพวกเขา

PDO จะทำงานเมื่อวันที่ 12 ระบบฐานข้อมูลที่แตกต่างกันที่เป็น MySQLi จะทำงานร่วมกับฐานข้อมูล MySQL

ดังนั้นถ้าคุณต้องเปลี่ยนโครงการของคุณที่จะใช้ฐานข้อมูลอื่น PDO ทำให้กระบวนการง่าย คุณจะต้องเปลี่ยนสตริงการเชื่อมต่อและแบบสอบถามไม่กี่ ด้วย MySQLi คุณจะต้องเขียนรหัสทั้งหมด - คำสั่งรวม

ทั้งสองเป็นวัตถุ แต่ MySQLi มี API ขั้นตอน

ทั้งสนับสนุนงบเตรียม งบเตรียมป้องกันจากการฉีด SQL และมีความสำคัญมากสำหรับการรักษาความปลอดภัยโปรแกรมประยุกต์บนเว็บ


ตัวอย่าง MySQL ทั้งสอง MySQLi และ PDO ไวยากรณ์

ในนี้และในบทต่อไปนี้เราแสดงให้เห็นถึงวิธีที่สามของการทำงานกับ PHP และ MySQL:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • PDO

การติดตั้ง MySQLi

สำหรับ Linux และ Windows: นามสกุล MySQLi ติดตั้งโดยอัตโนมัติในกรณีส่วนใหญ่เมื่อแพคเกจข้อมูล mysql php5 มีการติดตั้ง

สำหรับรายละเอียดการติดตั้งไปที่: http://php.net/manual/en/mysqli.installation.php


การติดตั้ง PDO

สำหรับรายละเอียดการติดตั้งไปที่: http://php.net/manual/en/pdo.installation.php


เปิดการเชื่อมต่อไปยัง MySQL

ก่อนที่เราจะสามารถเข้าถึงข้อมูลในฐานข้อมูล MySQL, เราจะต้องมีความสามารถในการเชื่อมต่อกับเซิร์ฟเวอร์:

ตัวอย่าง (MySQLi Object-Oriented)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

หมายเหตุเกี่ยวกับตัวอย่างเชิงวัตถุดังกล่าวข้างต้น: $ connect_error เสียจน PHP 5.2.9 และ 5.3.0 ถ้าคุณต้องการเพื่อให้เข้ากันกับรุ่นก่อนที่จะ PHP 5.2.9 และ 5.3.0 ใช้รหัสต่อไปนี้แทน:

// ตรวจสอบการเชื่อม
ถ้า ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

ตัวอย่าง (MySQLi Procedural)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

ตัวอย่าง (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

ขอให้สังเกตว่าในตัวอย่าง PDO ข้างต้นเราได้ระบุยังฐานข้อมูล (myDB) PDO จำเป็นต้องมีฐานข้อมูลที่ถูกต้องเพื่อเชื่อมต่อกับ ถ้าฐานข้อมูลไม่ได้ระบุยกเว้นจะโยน

เคล็ดลับ: ประโยชน์ที่ดีของ PDO คือว่ามันมีชั้นข้อยกเว้นที่จะจัดการกับปัญหาใด ๆ ที่อาจเกิดขึ้นในการสืบค้นฐานข้อมูลของเรา หากยกเว้นจะโยนภายในบล็อกลอง {} สคริปต์ที่จะหยุดการดำเนินการและไหลโดยตรงกับครั้งแรกที่ catch() {} บล็อก


ปิดการเชื่อมต่อ

การเชื่อมต่อจะถูกปิดโดยอัตโนมัติเมื่อสคริปต์จะสิ้นสุดลง การปิดการเชื่อมต่อก่อนที่จะใช้ต่อไปนี้:

ตัวอย่าง (MySQLi Object-Oriented)

$conn->close();

ตัวอย่าง (MySQLi Procedural)

mysqli_close($conn);

ตัวอย่าง (PDO)

$conn = null;