Interaksi PHP dengan mysql perlu dilepaskan, kerana beberapa aksara seperti petikan tunggal, petikan berganda dan garis miring terbalik mempunyai makna istimewa dalam pernyataan SQL untuk mengelakkan aksara ini disalahertikan, ia perlu dilepaskan pada masa yang sama serangan suntikan SQL boleh dielakkan dan penyerang boleh dihalang daripada melaksanakan kod SQL berniat jahat untuk mengubah tingkah laku aplikasi, seperti memadam data, mendapatkan maklumat sulit, dsb.
Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi php8.1.3, komputer Dell G3.
Apabila menggunakan PHP untuk berinteraksi dengan MySQL, sesetengah aksara mempunyai makna istimewa dalam pernyataan SQL. Untuk mengelakkan watak-watak ini daripada disalahertikan, mereka perlu dilepaskan.
Secara amnya, aksara yang perlu kita larikan termasuk: petikan tunggal ('), petikan berganda (") dan segaris ke belakang ().
Sebagai contoh, dalam kod PHP Connect to pangkalan data MySQL dan memasukkan data melalui sambungan MYSQLI:
```php $name = "John O'Connor"; $age = 25; mysqli_query($conn, "INSERT INTO users(name, age) VALUES('$name', '$age')"); ```
Jika pembolehubah $name mengandungi petikan tunggal, ia akan menyebabkan ralat pelaksanaan pernyataan SQL Untuk mengelakkan situasi ini, anda boleh menggunakan fungsi mysqli_real_escape_string() untuk tukar data. Definisi:
```php $name = "John O'Connor"; $age = 25; $name = mysqli_real_escape_string($conn, $name); mysqli_query($conn, "INSERT INTO users(name, age) VALUES('$name', '$age')"); ```
Fungsi ini secara automatik akan melepaskan aksara khas kepada persamaan selamatnya Sekarang, walaupun pembolehubah $name mengandungi petikan tunggal, ia tidak akan menyebabkan ralat pelaksanaan pernyataan SQL 🎜>Faedahnya ialah serangan suntikan SQL boleh dielakkan
Suntikan SQL ialah kelemahan yang mengeksploitasi input pengguna yang tidak dibersihkan dengan betul atau melarikan diri, yang boleh membenarkan penyerang melaksanakan kod SQL berniat jahat untuk mengubah tingkah laku aplikasi, seperti pemadaman, akses kepada maklumat sulit, dsb. Menggunakan melarikan diri boleh membantu menghalang serangan ini berbeza-beza bergantung pada alat dan bahasa pengaturcaraan yang digunakan Fungsi mysqli_real_escape_string() disediakan sebagai contoh >Dalam contoh di atas, kami mula-mula mewujudkan sambungan ke pangkalan data MySQL Kemudian, kami mengisytiharkan rentetan untuk dilepaskan dan melarikannya menggunakan fungsi mysqli_real_escape_string() Rentetan asal dan rentetan yang dilepaskan adalah output, dan sambungan pangkalan data adalah ditutup.Sila ambil perhatian bahawa apabila menggunakan fungsi mysqli_real_escape_string(), kita mesti lulus objek sambungan MySQL sebagai parameter pertama adalah kerana fungsi itu perlu mengetahui pelayan MySQL yang digunakan untuk melepaskan betul.
Atas ialah kandungan terperinci Adakah php berinteraksi dengan mysql perlu dilepaskan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!