我想使用bindParam.這是我的代碼的較短版本:$reindex['f_name'] = 'Tom';$reindex['l_name'] = 'Riddle';$reindex['date'] = '2020-12-12';$sql = "INSERT INTO tbl_user (f_name, l_name, date) VALUES (:f_name, :l_name, :date)";$stmt = $pdo->prepare($sql);foreach ($reindex as $key => $value) { echo $key . '<br>'; // look at output echo $value . '<br><br>'; $stmt->bindParam($key, $value);}$stmt->execute();回聲輸出:f_nameToml_nameRiddle我沒有收到任何錯(cuò)誤消息。我這樣設(shè)置錯(cuò)誤報(bào)告:ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);這可行,但我必須單獨(dú)定義每個(gè)綁定:$stmt->execute([ 'f_name' => $reindex['f_name'], 'l_name' => $reindex['l_name'], 'date' => $reindex['date']]);
1 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果您從 PDO 手冊中應(yīng)用它
PDOStatement::bindParam
將 PHP 變量綁定到用于準(zhǔn)備語句的 SQL 語句中相應(yīng)的命名或問號占位符。與 PDOStatement::bindValue() 不同,該變量被綁定為一個(gè)引用,并且只會在 PDOStatement::execute() 被調(diào)用時(shí)被評估。
你會明白在你的循環(huán)中你使用了相同的變量 X 次。每次循環(huán)都覆蓋它。
因此,當(dāng)實(shí)際綁定完成時(shí),在您->execute()
準(zhǔn)備好的查詢時(shí),您只有一個(gè)值,這些變量中循環(huán)中的最后一個(gè)值
- 1 回答
- 0 關(guān)注
- 98 瀏覽
添加回答
舉報(bào)
0/150
提交
取消