2012-04-02 21 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'があります。 – Mekswoll

+0

@pEkvo:nope ... – zerkms

+0

@ ph34r:もしあなたが 'var_dump($ viewCount-> errorInfo())を実行しているなら、' - > ' ?。); 'あなたのコードの後 – zerkms

答えて

0

変数$qviewCount(小さい「V」)と、あなたが渡す変数をPDO::Prepare 0と宣言しています(大文字の 'V')は同じではありません。したがって、エラーが正しいことは、クエリーが空であることを伝えることです($qViewCount(大文字の 'V'を使用)を値に初期化していないため)

+0

Dohの!I」私が間違っていたことを理解しようとずっとこれを見つめていた、私は私はそれを逃したどのようなアイデアアベー!本当にありがとう。 – ph34r

関連する問題