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.
Untuk pengenalan lengkap kepada PDO, sila rujuk: PHP PDO dalam Manual Rujukan PHP
Perlukah saya menggunakan MySQLi atau PDO?
Jika anda memerlukan jawapan ringkas, "gunakan mana-mana yang anda selesa".
mysqli dan pdo mempunyai kelebihan mereka sendiri: 12 pangkalan data yang berbeza menyokong sokongan mysql
sambungan mudah tidak disokong
pemetaan objek yang disokong tidak disokong tidak disokong
Oleh itu, pelbagai kaedah dan atribut PDO adalah lebih serba boleh dan mesti mengambil kira operasi pelbagai pangkalan data dan boleh digunakan Skop yang lebih luas Jika projek anda perlu bertukar antara berbilang pangkalan data, adalah disyorkan untuk menggunakan PDO dengan cara ini, anda hanya perlu mengubah suai rentetan sambungan dan pernyataan pertanyaan jabatan. Satu siri kelas dan kaedah MySQLi hanya boleh mengendalikan pangkalan data MySQL menggunakan 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: Pasang php5 mysql pakej Sambungan MySQLi dipasang secara automatik dalam kebanyakan kes.
Untuk butiran pemasangan, sila semak: http://php.net/manual/en/mysqli.installation.php
Anda boleh menggunakan fail .php dengan nama akhiran perisian PHP (PhpStorm) Tulis phpinfo() dan klik untuk membuka penyemak imbas untuk menyemak sama ada pemasangan berjaya:
Pemasangan PDO
Untuk butiran pemasangan, sila semak: http://php.net/manual/en/pdo.installation.php
Anda boleh menyemak sama ada pemasangan berjaya melalui phpinfo() :
Menyambung ke MySQL
Sebelum kami mengakses pangkalan data MySQL , kita perlu menyambung ke pelayan pangkalan data terlebih dahulu :
Contoh (MySQLi - Berorientasikan Objek)
<?php // 三个参数 $servername = "localhost"; // 服务器地址(域名、IP) $username = "username"; // 数据库用户名 $password ="password"; // 数据库密码(可能为空) // 创建连接 $conn =new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
Perhatikan bahawa dalam contoh berorientasikan objek di atas $connect_error adalah dalam PHP 5.2.9 dan 5.3.0 ditambah dalam. Jika anda memerlukan keserasian dengan versi terdahulu, sila gunakan penggantian kod berikut:
// Kesan sambungan
jika (mysqli_connect_error()) {
die(" Kegagalan sambungan pangkalan data: " . mysqli_connect_error());
}
Instance (MySQLi - prosedur)
Perhatikan bahawa dalam contoh berorientasikan proses di atas, jika anda ingin terus memilih nama pangkalan data yang ingin anda sambungkan semasa menyambung ke pangkalan data, akan ada parameter keempat: $db_name = "db_name"; // Nama pangkalan data
// Cipta sambungan
$conn = mysqli_connect($servername, $username, $password, $db_name);
Instance (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername,$username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>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)
$coon->close();
Instance (MySQLi - Berorientasikan Prosedur)
mysql_close($coon);
Instance (PDO)
mysql_close($coon);
Lampiran
Lampiran Kod lengkap sebelum ini untuk menyambung ke pangkalan data dan mendapatkan hasil pertanyaan (untuk rujukan):
Contoh
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB",$username, $password); echo "连接成功"; } catch(PDOException $e) // PDOException 错误处理 { echo $e->getMessage(); // getMessage()取得文本化的错误信息 } ?>