Bermula dengan PHP - Menyambung ke MySQL
PHP 5 dan ke atas disyorkan untuk menggunakan kaedah berikut untuk menyambung ke MySQL:
sambungan MySQL ("i" bermaksud bertambah baik)
PDO (Objek Data PHP)
Dalam versi awal PHP kami menggunakan sambungan MySQL. Walau bagaimanapun, sambungan ini telah ditamatkan pada tahun 2012.
Perlukah saya menggunakan MySQLi atau PDO?
Jika anda memerlukan jawapan ringkas, "gunakan mana-mana yang biasa anda gunakan" .
MySQLi dan PDO mempunyai kelebihan tersendiri:
PDO digunakan dalam 12 pangkalan data yang berbeza, dan MySQLi hanya menyasarkan pangkalan data MySQL.
Jadi, jika projek anda perlu bertukar antara berbilang pangkalan data, adalah disyorkan untuk menggunakan PDO, supaya anda hanya perlu mengubah suai rentetan sambungan dan pernyataan pertanyaan jabatan. Dengan MySQLi, jika anda menggunakan pangkalan data yang berbeza, anda perlu menulis semula semua kod, termasuk pertanyaan.
Kedua-duanya berorientasikan objek, tetapi MySQLi juga menyediakan antara muka API.
Kedua-duanya menyokong kenyataan yang disediakan. Kenyataan yang disediakan boleh menghalang suntikan SQL dan sangat penting untuk keselamatan projek web.
MySQLi dan PDO menyambung ke contoh MySQL
Dalam bab ini dan bab-bab berikutnya, kami akan menggunakan tiga kaedah berikut untuk menunjukkan Operasi PHP MySQL:
MySQLi (berorientasikan objek)
MySQLi (berorientasikan prosedur)
PDO
Pemasangan MySQL
Linux dan Windows: Dalam kebanyakan kes, sambungan MySQLi dipasang secara automatik apabila pakej mysql php5 dipasang.
Untuk butiran pemasangan, sila semak: http://php.net/manual/en/mysqli.installation.php
Anda boleh menyemak sama ada pemasangan berjaya melalui phpinfo():
Pemasangan PDO
Untuk butiran pemasangan, sila lihat: http://php.net/manual/en/pdo.installation.php
Anda boleh menyemak sama ada pemasangan berjaya melalui phpinfo():
Sambung ke MySQL
Sebelum kami mengakses MySQL pangkalan data, kita perlu menyambung dahulu Ke pelayan pangkalan data:
Contoh (MySQLi - Berorientasikan Objek)
<?php $servername = "localhost"; //服務(wù)器 $username = "username"; //用戶名 $password = "password"; //密碼 // 創(chuàng)建連接 $conn = new mysqli($servername, $username, $password); // 檢測連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } echo "連接成功"; ?>
NotaDalam contoh Berorientasikan Objek di atas $connect_error telah ditambahkan dalam PHP 5.2.9 dan 5.3.0. Jika anda memerlukan keserasian dengan versi terdahulu, sila gunakan penggantian kod berikut:
// Kesan sambungan
jika (mysqli_connect_error()) {
die("Sambungan pangkalan data gagal: " . mysqli_connect_error());
}
Instance (MySQLi - Berorientasikan Prosedur)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 創(chuàng)建連接 $conn = mysqli_connect($servername, $username, $password); // 檢測連接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "連接成功"; ?>
Instance (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "連接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
Perhatikan bahawa dalam contoh PDO di atas kami telah menentukan pangkalan data ( myDB). PDO perlu menetapkan nama pangkalan data semasa proses sambungan. Jika tidak dinyatakan, pengecualian akan dilemparkan.
Tutup sambungan
Sambungan akan ditutup secara automatik selepas skrip dilaksanakan. Anda juga boleh menggunakan kod berikut untuk menutup sambungan:
Instance (MySQLi - Berorientasikan Objek)
$conn->close();
Instance (MySQLi - Berorientasikan Prosedur)
mysqli_close($conn);
Instance (PDO)
$conn = null;