首頁 >後端開發 >php教程 >為什麼我的 PDO 準備語句不插入 MySQL?

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

Susan Sarandon
Susan Sarandon原創
2024-11-25 00:48:11257瀏覽

Why Doesn't My PDO Prepared Statement INSERT INTO MySQL?

使用 PDO 準備語句進行 MySQL INSERT INTO 查詢

在 PHP 開發領域,使用 PDO 執行 MySQL 查詢具有許多優點。然而,初學者在嘗試使用準備好的語句進行 INSERT INTO 操作時經常會遇到障礙。

讓我們考慮一下這個神秘的程式碼片段:

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

儘管編碼人員付出了辛勤的努力,資料庫仍然存在空虛得令人心痛。程式碼中潛伏著什麼難以捉摸的錯誤?

成功的隱藏關鍵

解開這個謎團的關鍵在於理解參數綁定的力量。 PDO 準備好的語句允許開發人員安全地將值綁定到 SQL 查詢中的佔位符,而無需訴諸連接。為此,應仔細遵循以下步驟:

  1. 在 SQL 語句中使用參數佔位符(:foo 或 ?)。
  2. 建構一個包含以下內容的關聯數組或索引數組:要綁定的值。
  3. 使用execute()函數將陣列作為參數傳遞,將值綁定到

帶有綁定參數的範例程式碼

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

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

帶有索引參數的範例程式碼

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

$statement->execute(['Bob', 'Desaunois', '18']);

優點和首選項

兩種參數綁定方法都有各自的優點和缺點。依參數名稱綁定可提高可讀性,而依索引綁定可減少程式碼。選擇最終取決於開發人員的偏好。

採用這些原則將使開發人員能夠使用 PDO 準備好的語句輕鬆執行 INSERT INTO 操作,確保他們的資料在資料庫中找到正確的位置。

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

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