首頁  >  文章  >  後端開發  >  php mysqli語句怎麼修改資料庫

php mysqli語句怎麼修改資料庫

PHPz
PHPz原創
2023-03-22 11:24:351580瀏覽

PHP是一種流行的開源伺服器端腳本語言,它能夠在Web上實現互動性和動態性。在處理資料庫操作時,PHP透過mysqli擴充庫提供了豐富的操作函數。在本文中,我們將探討如何使用PHP中的mysqli擴充庫修改資料庫中的資料。

一、mysqli介紹

與PHP的mysql擴充不同,mysqli擴充介面提供了對MySQL 4.1及更高版本的支援。 mysqli擴展是PHP 5中的預設擴展,從PHP 7開始,mysql擴展已經被棄用。 mysqli擴充提供了更好的效能、更多的特性以及更好的安全性。

二、mysqli修改語句

在PHP中,mysqli修改語句需要透過mysqli_query()函數實作。在使用函數時,需要傳遞兩個參數:連接物件和要執行的SQL語句。範例如下:

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

說明:

首先,使用mysqli類別建立一個連接物件。如果連線失敗,程式將會拋出一個異常。

接下來,建立要執行的SQL語句,這裡我們使用UPDATE語句更新了表中id為1的使用者的使用者名稱。

然後,呼叫mysqli_query()函數執行SQL語句。如果查詢成功,函數將傳回true,否則傳回false。

最後,關閉資料庫連線。

三、防止SQL注入

在使用mysqli擴充時,我們需要注意到SQL注入攻擊問題。 SQL注入攻擊是一種針對資料庫應用程式的網路攻擊,用於透過注入惡意的SQL程式碼,從而欺騙應用程式執行攻擊者所期望的操作。要防止SQL注入,我們可以採取以下措施:

1.使用mysqli_prepare()函數

mysqli_prepare()函數準備一個SQL語句並傳回一個語句處理物件。它執行一個預處理的SQL語句,允許我們在發送請求和接收回應之間進行一些綁定。

範例如下:

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

在上面的範例中,我們使用了mysqli_prepare()函數準備了一個SQL語句,然後將參數綁定到語句中,最後呼叫execute()方法執行SQL語句。

2.使用mysqli_real_escape_string()函數

mysqli_real_escape_string()函數可以將字串中的特殊字元轉義,從而避免SQL注入攻擊。

範例如下:

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

在上面的範例中,我們先使用mysqli_real_escape_string()函數對傳遞過來的參數進行轉義,然後再建立SQL語句。

四、總結

在本文中,我們介紹如何使用PHP中的mysqli擴充庫修改資料庫的語句。我們探討如何使用mysqli_query()函數執行SQL語句,並介紹如何防止SQL注入攻擊。希望這篇文章對您有幫助。

以上是php mysqli語句怎麼修改資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn