2011-05-20 141 views
2

我正在为我的应用程序设计一个超简单的计数器。我能够使用'$ date'和'$ c'插入行就好了,但更新不起作用。PHP PDO准备执行MySQL UPDATE语句不工作 - 难倒!

这工作:

$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)); 

没有错误,什么都没有。

+0

请定义“不工作”。任何错误?什么都执行了? – deceze 2011-05-20 03:11:02

+0

抱歉,没有错误。什么都没发生。 – Yev 2011-05-20 03:12:05

回答

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());