2012-04-02 49 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