PHP menyambung ke MySQL
PHP 5 dan ke atas disyorkan untuk menggunakan kaedah berikut untuk menyambung ke MySQL:
· Sambungan MySQLi ("i" bermaksud dipertingkatkan )
· PDO (Objek Data PHP)
Dalam versi awal PHP kami menggunakan sambungan MySQL. Walau bagaimanapun, sambungan ini telah ditamatkan pada tahun 2012.
Apakah itu PDO?
ialah kaedah untuk mengendalikan pangkalan data,
pdo adalah untuk merangkum fungsi pengendalian pangkalan data ke dalam kelas pdo, dan hanya melakukan pengesahan keselamatan semasanya.
Perbezaan antara PDO dan mysqli:
Perlukah saya menggunakan MySQLi atau PDO?
Jika anda memerlukan jawapan ringkas, "gunakan mana-mana yang anda selesa".
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 PHP mengendalikan MySQL:
· MySQLi (berorientasikan objek)
$mysqli = mysqli baharu('localhost','username','password','database');
· MySQLi (process-oriented )
$mysqli = mysqli_connect('localhost','username','password','database');
· PDO
$pdo = new PDO(" mysql :host=localhost;dbname=database", 'username', 'password');
Pemasangan MySQL
Linux dan Windows: dalam Apabila pakej php5 mysql dipasang, sambungan MySQLi dipasang secara automatik dalam kebanyakan kes.
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 semak: http:// /php .net/manual/en/pdo.installation.php
Anda boleh menyemak sama ada pemasangan berjaya melalui phpinfo():
Menyambung ke MySQL
Sebelum kita mengakses pangkalan data MySQL, kita perlu menyambung ke pelayan Pangkalan Data:
Instance (MySQLi - Berorientasikan objek)
$link = mysqli_connect('localhost', 'mysql_user', 'mysql_password');
Tiga parameter ialah
· Alamat pelayan (nama domain, IP)
· Nama pengguna pangkalan data (root)
· Kata laluan pangkalan data (kosong)
Jika sambungan berjaya, kembalikan sambungan pangkalan data, jika tidak, kembalikan palsu (kita boleh gunakan if judgement untuk menggesa pengguna sama ada sambungan berjaya)
<?php $servername = "localhost"; $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 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"; // 创建连接 $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 kita ada menentukan pangkalan data (myDB). PDO perlu menetapkan nama pangkalan data semasa proses sambungan. Jika tidak dinyatakan, pengecualian akan dilemparkan.
Pilih pangkalan data
$db_selected = mysqli_select_db($link, 'db_name');
Dua parameter
• Sambungan pangkalan data dikembalikan oleh mysql_connect
• Nama pangkalan data
mengembalikan benar jika berjaya dan palsu jika gagal
Anda juga boleh memilih ia terus apabila menyambungkan Pangkalan Data:
$link = mysqli_connect('localhost', 'mysql_user', 'mysql_password', 'db_name');
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;
Peringatan mesra:
Ingatlah untuk bersikap ceroboh dan tidak berhati-hati semasa menulis program. Ia benar-benar pantang larang terbesar dalam menulis program. Ralat atau ralat lain yang tidak diketahui mungkin berlaku disebabkan oleh ralat nama atau ralat penulisan dalam nama jadual data. Oleh itu, semasa menulis kod pada masa hadapan, anda mesti berhati-hati dan tidak sombong atau angkuh, supaya anda boleh menulis kod yang baik dan mengelakkan kekeliruan.