次のコードでテーブルを更新しようとしています。WHERE temp_booking_id = ':temp_booking_id'");
実際の現在のセッションを使用するように変更するtemp_id
と、クエリは実行されますが、プレースホルダーが値としてテーブルに追加されます (例: チェックアウト)。
$data
正しい値を保持していますが、プレースホルダーを置き換えていません。
これを何時間も見つめていて、私の人生では問題が何であるかを理解することができず、周りを見回しましたが、解決策が見つかりませんでした.
PDOStatement:errorInfo()
戻ってきています
PDOStatement::errorInfo(): 配列 ( [0] => 00000 )
プレースホルダーの前後の逆コンマを削除すると、返されます
PDOStatement::errorInfo(): 配列 ( [0] => HY093 )
何か案は?
try {
$data = array(
'temp_booking_id' => $_SESSION['temp_id'],
'check_in' => $in,
'check_out' => $out,
'adults' => $a,
'children1' => $c1,
'children2' => $c2,
'infants' => $i,
'cots' => $c,
'promo_code' => $pc
);
$STH = $DBH->prepare("UPDATE b_temp_booking
SET check_in = ':check_in',
check_out = ':check_out',
adults = ':adults',
children1 = ':children1',
children2 = ':children2',
infants = ':infants',
cots = ':cots',
promo_code = ':promo_code'
WHERE temp_booking_id = ':temp_booking_id'");
$STH->execute($data);
echo "\nPDOStatement::errorInfo():\n";
$arr = $STH->errorInfo();
print_r($arr);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}