首頁 > 後端開發 > php教程 > 如何正確使用帶有 PDO 的預準備語句進行 MySQL INSERT 查詢?

如何正確使用帶有 PDO 的預準備語句進行 MySQL INSERT 查詢?

Patricia Arquette
發布: 2024-11-24 22:43:15
原創
855 人瀏覽過

How to Properly Use Prepared Statements with PDO for MySQL INSERT Queries?

使用具有PDO 的預準備語句執行MySQL INSERT 查詢

在PHP 資料物件(PDO) 領域,嘗試執行MySQL INSERT 的MySQL INSERT時可能會遇到困難透過準備好的語句執行SQL 查詢。一個常見問題涉及使用 INSERT INTO 語句向資料庫新增記錄。

考慮以下程式碼:

$dbhost = "localhost";
$dbname = "pdo";
$dbusername = "root";
$dbpassword = "845625";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
        VALUES('Bob','Desaunois','18')");

$statement->execute();
登入後複製

此程式碼嘗試將新記錄插入到 testtable 表中MySQL 資料庫。但是,資料庫仍然是空的。

要解決此問題,您需要使用參數化查詢,而不是直接將值嵌入到 SQL 語句中。參數化查詢使用佔位符 (?) 或命名參數 (:parameter) 來表示值,然後在執行期間將其綁定到實際值。這種方法可以防止 SQL 注入攻擊並確保資料驗證。

使用INSERT INTO 準備好的語句的正確方法如下:

$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';

$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);
登入後複製

透過使用參數化查詢,您可以保護您的應用程式免受惡意輸入並確保您的資料完整性。

以上是如何正確使用帶有 PDO 的預準備語句進行 MySQL INSERT 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板