2012-04-02 45 views
0

我最近转换到PDO使用准备好的语句后,在这里提出了很多精彩的建议。我试图转换一个简单的视图计数器用于PDO,但无法实际更新表格。你们会介意指出我在这里做错了吗?谢谢!这个PHP PDO更新有什么问题?

旧的工作代码:

//Update view counter 
$old_views = $postCrumb['topic_views']; 
$new_views = $old_views + 1; 

$qviewCount = "UPDATE topics SET topic_views='".$new_views."' WHERE cat_id='".$cidClean."' AND id='".$tidClean."' LIMIT 1"; 
$viewCount = mysql_query($qviewCount) or die(mysql_error()); 

新的非工作代码:

//Update view counter 
$old_views = $postCrumb['topic_views']; 
$new_views = $old_views + 1; 

$qviewCount = "UPDATE topics SET topic_views='".$new_views."' WHERE cat_id=? AND id=? LIMIT 1"; 
$viewCount = $conn->prepare($qViewCount);  
$viewCount -> execute(array($cidClean, $tidClean)); 

我也试过标注的条目,但是这并没有工作,要么:

$qviewCount = "UPDATE topics SET topic_views='".$new_views."' WHERE cat_id=':cat_id' AND id=':topic_id' LIMIT 1"; 
$viewCount = $conn->prepare($qViewCount); 
$viewCount -> execute(array(':topic_id'=>$tidClean,':cat_id'=>$cidClean)); 
+0

在你的最后一行你有'$ viewCount - > execute',不应该('),然后把'$ conn-> execute(...)' – Mekswoll 2012-04-02 03:59:02

+0

@pEkvo:nope ... – zerkms 2012-04-02 04:04:45

+0

@ ph34r:如果var_dump($ viewCount-> errorInfo() );'在你的代码之后? – zerkms 2012-04-02 04:06:59

回答

0

的变量你声明$qviewCount(小'V')和你传递给PDO::Prepare$qViewCount(大写'V')不一样。因此,错误是正确的告诉你,他们的查询是空的(因为你从来没有初始化$qViewCount(大写'V')到一个值。

+0

Doh!我一直盯着这个这么长时间想弄清楚我做错了什么,我h大概不知道我是怎么错过的!谢谢一堆。 – ph34r 2012-04-02 05:05:07