為什麼我的 PDO 準備語句無法插入 MySQL?

DDD
發布: 2024-11-24 13:38:12
原創
591 人瀏覽過

Why are my PDO Prepared Statements Failing to INSERT into MySQL?

PDO 中INSERT INTO 的準備語句錯誤

在處理PDO 的複雜性時,您可能會在使用MySQL 查詢的準備語句時遇到困難。考慮以下程式碼:

$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();
登入後複製

儘管採用了這種方法,您的資料庫仍然是空的。

解決方案在於適當使用已準備好的語句。相反,請使用以下內容:

$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',
]);
登入後複製

準備好的語句提供輸入清理。在 SQL 語句中使用「:parameter」佔位符,並在「execute」函數中傳遞這些參數的關聯數組。或者,使用“?”佔位符並傳遞值數組。

兩種方法各有優缺點。綁定參數名稱可以增強可讀性,而後者方法可以簡化程式碼。

以上是為什麼我的 PDO 準備語句無法插入 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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