2012-01-09 13 views
1

このクエリは実行されていません。コードを確認しているだけで、行は更新されません。実行しないこのMysql PDO実行に何が問題なのですか?

$statement = $db->prepare("UPDATE users SET data=:data WHERE id=:id"); 
$statement->execute(array(':data' => $data, ':id' =>  $_REQUEST['user_id'])); 

何が問題なのですか?私は$_REQUEST['user_id']が有効であり、DBに存在し、そのデータにも何かが含まれていることを100%としています。私はそれが実行されない理由は本当に無知だ。

+0

それが実行されない理由を私たちはどのように知ることができますか?通常、エラーメッセージが表示され、実行しない場合は、 'execute'関数に渡すパラメータを調べます。あなたは '$ data'を持っていて、' $ _REQUEST ['user_id'] 'が渡されています。あなたのアサーションが正しいことを確認しない限り、何かが有効であることを確信していると言う - それは両方の変数が設定されているということです。 –

+0

私はどちらもissetで物事を含んでいることを確認しました。私は正直なところ、あなたと同じくらい無慈悲です。エラーはありません。このコードをスキップして何もしません!本当に奇妙です。私は、スクリプトの一番上で、まったく同じコードを使用していますが、ユーザーデータを受け取るための「SELECT」では使用しています: – Qasim

+0

@ N.B。 '$ query = $ db-> prepare(" SELECT * FROM users WHERE id =? "); \t $ query-> execute(array($ _REQUEST ['user_id'])); ' – Qasim

答えて

2

bindingあなたのparams最初試してみてください。

$statement = $db->prepare("UPDATE users SET data=:data WHERE id=:id"); 

$statement->bindValue(':data', $data, PDO::PARAM_STR); 
$statement->bindValue(':id', $_REQUEST['user_id'], PDO::PARAM_INT); 

$statement->execute(); 
+0

まだ更新したくない、これはとても奇妙です。 – Qasim

+0

エラーログを確認していますか? –

関連する問題