Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan phpysql-shim untuk Menangani Keserasian Fungsi `mysql_*` dalam PHP 7

Menggunakan phpysql-shim untuk Menangani Keserasian Fungsi `mysql_*` dalam PHP 7

WBOY
WBOYasal
2024-08-05 22:10:421057semak imbas

Using phpysql-shim to Address `mysql_*` Function Compatibility in PHP 7

pengenalan

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.

Apakah php7-mysql-shim?

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.

Faedah Menggunakan php7-mysql-shim

  1. Peralihan Lancar: Membenarkan aplikasi lama dijalankan pada versi PHP moden tanpa pemfaktoran semula yang meluas.
  2. Perubahan Minimum: Memerlukan kemasukan perpustakaan shim sahaja, menjadikan pangkalan kod sedia ada sebahagian besarnya tidak disentuh.
  3. Kos-Efektif: Menjimatkan masa dan sumber yang sebaliknya akan dibelanjakan untuk menulis semula kod untuk menggunakan mysqli atau PDO.

Pemasangan

Anda boleh memasang php7-mysql-shim melalui Composer, pengurus pergantungan untuk PHP.

Pemasangan Langkah demi Langkah

  1. Pasang Komposer:
    Jika anda belum memasang Komposer, anda boleh memasangnya dengan mengikut arahan di getcomposer.org.

  2. 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
  1. Sertakan Shim dalam Kod Anda: Tambahkan baris berikut pada permulaan skrip PHP anda, sebaik-baiknya dalam fail konfigurasi yang disertakan dalam semua skrip anda:
   require 'vendor/autoload.php';

Contoh Penggunaan

Kod Asal Menggunakan Fungsi mysql_*

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);

Kod yang diubah suai dengan php7-mysql-shim

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);

Pengendalian Ralat

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.

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn