Setakat PHP 7, fungsi mysql_* telah dialih keluar. Aplikasi yang masih menggunakan fungsi ini perlu dikemas kini atau menghadapi masalah keserasian. Satu penyelesaian ialah menggunakan php7-mysql-shim, perpustakaan yang menyediakan lapisan keserasian yang membenarkan penggunaan fungsi mysql_* dalam PHP 7 dengan memetakannya kepada mysqli_* yang setara.
php7-mysql-shim ialah pustaka PHP yang direka untuk menyediakan penggantian drop-in untuk fungsi mysql_* yang tidak digunakan lagi. Ini membolehkan aplikasi legasi dijalankan pada PHP 7 dan versi yang lebih baharu tanpa memerlukan penulisan semula lengkap interaksi pangkalan data.
Anda boleh memasang php7-mysql-shim melalui Composer, pengurus pergantungan untuk PHP.
Pasang Komposer:
Jika anda belum memasang Komposer, anda boleh memasangnya dengan mengikut arahan di getcomposer.org.
Memerlukan php7-mysql-shim:
Navigasi ke direktori projek anda dan jalankan arahan berikut untuk menambah php7-mysql-shim pada projek anda:
composer require doozie-akshay/php7-mysql-shim
require 'vendor/autoload.php';
Berikut ialah contoh kod warisan menggunakan fungsi mysql_*:
// config.php $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'test'; // Establish connection $connection = mysql_connect($db_host, $db_user, $db_password); if (!$connection) { die('Could not connect: ' . mysql_error()); } mysql_select_db($db_name, $connection);
// check_user.php include_once('config.php'); $query = "SELECT * FROM users WHERE username = 'example_user'"; $result = mysql_query($query, $connection); if (!$result) { die('Query failed: ' . mysql_error()); } if (mysql_num_rows($result) > 0) { echo "User exists."; } else { echo "User does not exist."; } mysql_close($connection);
Selepas memasang php7-mysql-shim, anda hanya perlu memasukkan fail autoload:
// config.php require 'vendor/autoload.php'; $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'test'; // Establish connection $connection = mysql_connect($db_host, $db_user, $db_password); if (!$connection) { die('Could not connect: ' . mysql_error()); } mysql_select_db($db_name, $connection);
// check_user.php include_once('config.php'); $query = "SELECT * FROM users WHERE username = 'example_user'"; $result = mysql_query($query, $connection); if (!$result) { die('Query failed: ' . mysql_error()); } if (mysql_num_rows($result) > 0) { echo "User exists."; } else { echo "User does not exist."; } mysql_close($connection);
php7-mysql-shim bertujuan untuk menyediakan keserasian penuh dengan fungsi mysql_*, termasuk pengendalian ralat dan nuansa lain. Pastikan kod pengendalian ralat sedia ada anda kekal berkesan tanpa pengubahsuaian.
php7-mysql-shim menyediakan penyelesaian yang mudah dan berkesan untuk menjalankan aplikasi PHP legasi yang menggunakan fungsi mysql_* pada PHP 7 dan versi yang lebih baharu. Dengan memasang shim dan memasukkannya ke dalam projek anda, anda boleh mengelakkan penulisan semula yang meluas dan memastikan keserasian dengan versi PHP moden, membolehkan peralihan yang lancar dan kefungsian aplikasi yang berterusan.
Atas ialah kandungan terperinci Menggunakan phpysql-shim untuk Menangani Keserasian Fungsi `mysql_*` dalam PHP 7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!