亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

循環內 PDO 語句的綁定參數不起作用

循環內 PDO 語句的綁定參數不起作用

PHP
POPMUISE 2023-04-02 10:41:13
我想使用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我沒有收到任何錯誤消息。我這樣設置錯誤報告:ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);這可行,但我必須單獨定義每個綁定:$stmt->execute([    'f_name' => $reindex['f_name'],    'l_name' => $reindex['l_name'],    'date' => $reindex['date']]);
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

如果您從 PDO 手冊中應用它

PDOStatement::bindParam

將 PHP 變量綁定到用于準備語句的 SQL 語句中相應的命名或問號占位符。與 PDOStatement::bindValue() 不同,該變量被綁定為一個引用,并且只會在 PDOStatement::execute() 被調用時被評估。

你會明白在你的循環中你使用了相同的變量 X 次。每次循環都覆蓋它。

因此,當實際綁定完成時,在您->execute()準備好的查詢時,您只有一個值,這些變量中循環中的最后一個值


查看完整回答
反對 回復 2023-04-02
  • 1 回答
  • 0 關注
  • 90 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號