2

私は自分のアプリケーション用の非常にシンプルなカウンターに取り組んでいます。「$date」と「$c」を使用して行を挿入することはできますが、更新は機能しません。

これは機能します:

$c = 8;
$today = date('Y-m-d');
$insert_count = $db->prepare("INSERT INTO COUNTER (COUNTER.date, clicks) VALUES ('" . $today . "', ?)");
$insert_count->execute(array($c));

これはしません

$c = 8;
$today = date('Y-m-d');
$update_count = $db->prepare("UPDATE COUNTER SET clicks = clicks + ? WHERE COUNTER.date = '" . $today . "'");
$update_count->execute(array($c));

エラーはありません。

4

1 に答える 1

0

とは思わない?バインディング プレースホルダーは計算で機能します。代わりに名前付きバインディング パラメーターを使用してみましたか?

$update_count = $db->prepare("UPDATE COUNTER SET clicks = clicks + :increment WHERE COUNTER.date = '" . $today . "'");
$update_count->execute(array("increment"=>$c));

エラーがないと言うと、実行後にこのコマンドの出力はありませんか?

print_r($db->errorInfo());
于 2011-05-20T04:23:06.980 に答える