Penyelesaian kepada PHP Ralat maut: Panggilan ke undefined function mysql_connect()
Apabila menggunakan PHP untuk membangunkan tapak web, kita sering menghadapi pelbagai ralat dan pengecualian. Antaranya, PHP Fatal error: Call to undefined function mysql_connect() ialah ralat yang agak biasa. Ralat ini biasanya berlaku apabila kami menggunakan PHP untuk menyambung ke pangkalan data MySQL, tetapi lupa untuk mendayakan sokongan untuk MySQL dalam fail konfigurasi PHP. Dalam artikel ini, kami akan membincangkan cara menyelesaikan ralat ini dan memberikan beberapa contoh kod untuk menunjukkan penyelesaiannya.
Pertama sekali, kita perlu faham apakah punca kesilapan ini. Selepas PHP 5.5.0, sambungan MySQL telah ditamatkan dan dialih keluar dalam PHP 7.0.0. Oleh itu, jika anda menggunakan PHP versi 7.0.0 atau lebih tinggi dan cuba menggunakan fungsi mysql_connect() untuk menyambung ke pangkalan data MySQL, mesej ralat di atas akan muncul. Sebaliknya, kita harus menggunakan sambungan mysqli atau PDO untuk menyambung ke pangkalan data MySQL.
Langkah pertama untuk menyelesaikan masalah ini ialah mengesahkan bahawa anda menggunakan PHP versi 7.0.0 atau lebih tinggi. Anda boleh menyemak versi PHP dengan menjalankan php -v
pada baris arahan atau menggunakan echo PHP_VERSION;
dalam kod. php -v
或者在代码中使用 echo PHP_VERSION;
来查看PHP版本。
一旦确认了PHP的版本,我们就可以采取以下两种方式来解决这个错误。
方式一:使用mysqli扩展连接MySQL数据库
示例代码如下:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $database = "dbname"; // 创建连接 $conn = new mysqli($servername, $username, $password, $database); // 检测连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
上述代码中,我们使用了mysqli扩展来连接MySQL数据库。首先,我们声明了相关的连接参数,包括服务器名、用户名、密码以及数据库名。然后,使用 new mysqli()
创建了一个mysqli对象,参数依次为服务器名、用户名、密码以及数据库名。接着,我们使用 $conn->connect_error
来检测连接是否成功,如果连接失败,则输出错误信息;如果连接成功,则输出 "连接成功"。
方式二:使用PDO扩展连接MySQL数据库
示例代码如下:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $database = "dbname"; try { $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "连接成功"; } catch(PDOException $e) { echo "连接失败: " . $e->getMessage(); } ?>
上述代码中,我们使用了PDO扩展来连接MySQL数据库。首先,我们声明了相关的连接参数,包括服务器名、用户名、密码以及数据库名。然后,使用 new PDO()
创建了一个PDO对象,第一个参数是连接字符串,包含了服务器名和数据库名,第二个参数是用户名,第三个参数是密码。接着,我们使用 $conn->setAttribute()
mysqli()
baharu untuk mencipta objek mysqli, dan parameternya ialah nama pelayan, nama pengguna, kata laluan dan nama pangkalan data. Seterusnya, kami menggunakan $conn->connect_error
untuk mengesan sama ada sambungan berjaya Jika sambungan gagal, mesej ralat akan dikeluarkan jika sambungan berjaya, "Sambungan berjaya" akan dikeluarkan. 🎜🎜Kaedah 2: Gunakan sambungan PDO untuk menyambung ke pangkalan data MySQL 🎜🎜Kod sampel adalah seperti berikut: 🎜rrreee🎜Dalam kod di atas, kami menggunakan sambungan PDO untuk menyambung ke pangkalan data MySQL. Pertama, kami mengisytiharkan parameter sambungan yang berkaitan, termasuk nama pelayan, nama pengguna, kata laluan dan nama pangkalan data. Kemudian, gunakan new PDO()
untuk mencipta objek PDO Parameter pertama ialah rentetan sambungan, termasuk nama pelayan dan nama pangkalan data Parameter kedua ialah nama pengguna, dan parameter ketiga ialah kata laluan. Seterusnya, kami menggunakan $conn->setAttribute()
untuk menetapkan mod ralat objek PDO dan menetapkannya untuk membuang pengecualian. Akhir sekali, gunakan blok cuba-tangkap untuk menangkap pengecualian yang mungkin berlaku dalam sambungan Jika sambungan gagal, mesej ralat akan dikeluarkan jika sambungan berjaya, "Sambungan berjaya" adalah output. 🎜🎜Ringkasan: 🎜🎜Dalam artikel ini, kami membincangkan cara menyelesaikan PHP Fatal error: Call to undefined function mysql_connect() error. Kami menegaskan bahawa sebab ralat ini ialah sambungan MySQL telah dialih keluar dalam versi PHP7.0.0, dan memberikan dua penyelesaian, iaitu menggunakan sambungan mysqli dan sambungan PDO untuk menyambung ke pangkalan data MySQL. Melalui contoh kod di atas, saya berharap pembaca dapat menyelesaikan ralat ini dengan jayanya dan berjaya menyambung ke pangkalan data MySQL. 🎜Atas ialah kandungan terperinci 解决PHP Ralat maut: Panggilan ke fungsi yang tidak ditentukan mysql_connect(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!