Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengubah suai pangkalan data dengan pernyataan php mysqli

Bagaimana untuk mengubah suai pangkalan data dengan pernyataan php mysqli

PHPz
PHPzasal
2023-03-22 11:24:351569semak imbas

PHP ialah bahasa skrip sebelah pelayan sumber terbuka yang popular yang membolehkan interaktiviti dan dinamik di Web. Apabila memproses operasi pangkalan data, PHP menyediakan fungsi operasi yang kaya melalui perpustakaan sambungan mysqli. Dalam artikel ini, kami akan meneroka cara mengubah suai data dalam pangkalan data menggunakan perpustakaan sambungan mysqli dalam PHP.

1. Pengenalan kepada mysqli

Berbeza daripada sambungan mysql PHP, antara muka sambungan mysqli menyediakan sokongan untuk MySQL 4.1 dan lebih tinggi. Sambungan mysqli ialah sambungan lalai dalam PHP 5. Bermula dari PHP 7, sambungan mysql telah ditamatkan. Sambungan mysqli memberikan prestasi yang lebih baik, lebih banyak ciri dan keselamatan yang lebih baik.

2. Pernyataan pengubahsuaian Mysqli

Dalam PHP, pernyataan pengubahsuaian mysqli perlu dilaksanakan melalui fungsi mysqli_query(). Apabila menggunakan fungsi ini, anda perlu lulus dua parameter: objek sambungan dan pernyataan SQL yang akan dilaksanakan. Contohnya adalah seperti berikut:

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 执行SQL语句
    $sql = "UPDATE users SET username='new_username' WHERE id=1";
    if ($mysqli->query($sql) === true) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Arahan:

Pertama, buat objek sambungan menggunakan kelas mysqli. Jika sambungan gagal, program akan membuang pengecualian.

Seterusnya, bina pernyataan SQL untuk dilaksanakan Di sini kami menggunakan pernyataan KEMASKINI untuk mengemas kini nama pengguna pengguna dengan id 1 dalam jadual.

Kemudian, panggil fungsi mysqli_query() untuk melaksanakan pernyataan SQL. Fungsi akan kembali benar jika pertanyaan berjaya, jika tidak, ia akan kembali palsu.

Akhir sekali, tutup sambungan pangkalan data.

3. Cegah suntikan SQL

Apabila menggunakan sambungan mysqli, kita perlu memberi perhatian kepada masalah serangan suntikan SQL. Serangan suntikan SQL ialah serangan rangkaian yang menyasarkan aplikasi pangkalan data, yang digunakan untuk menipu aplikasi supaya melaksanakan tindakan yang diharapkan oleh penyerang dengan menyuntik kod SQL yang berniat jahat. Untuk mengelakkan suntikan SQL, kita boleh mengambil langkah berikut:

1 Gunakan fungsi mysqli_prepare()

mysqli_prepare() untuk menyediakan pernyataan SQL dan mengembalikan objek pemprosesan pernyataan. Ia melaksanakan pernyataan SQL yang disediakan, membolehkan kami melakukan beberapa pengikatan antara menghantar permintaan dan menerima respons.

Contohnya adalah seperti berikut:

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 准备SQL语句
    $stmt = $mysqli->prepare("UPDATE users SET username=? WHERE id=?");

    // 绑定参数
    $username = 'new_username';
    $id = 1;
    $stmt->bind_param("si", $username, $id);

    // 执行SQL语句
    if ($stmt->execute()) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Dalam contoh di atas, kami menggunakan fungsi mysqli_prepare() untuk menyediakan pernyataan SQL, kemudian mengikat parameter pada pernyataan, dan akhirnya memanggil execute( ) kaedah melaksanakan pernyataan SQL.

2. Gunakan fungsi mysqli_real_escape_string()

Fungsi mysqli_real_escape_string() boleh melepaskan aksara khas dalam rentetan untuk mengelakkan serangan suntikan SQL.

Contohnya adalah seperti berikut:

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 处理传递过来的参数
    $username = mysqli_real_escape_string($mysqli, $_POST['username']);
    $id = mysqli_real_escape_string($mysqli, $_POST['id']);

    // 构建SQL语句
    $sql = "UPDATE users SET username='$username' WHERE id='$id'";

    // 执行SQL语句
    if ($mysqli->query($sql) === true) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Dalam contoh di atas, kami mula-mula menggunakan fungsi mysqli_real_escape_string() untuk melepaskan parameter yang diluluskan, dan kemudian membina pernyataan SQL.

4. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan perpustakaan sambungan mysqli dalam PHP untuk mengubah suai penyata pangkalan data. Kami meneroka cara menggunakan fungsi mysqli_query() untuk melaksanakan penyataan SQL dan membincangkan cara mencegah serangan suntikan SQL. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Bagaimana untuk mengubah suai pangkalan data dengan pernyataan php mysqli. 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