こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

UPDATE文のWHERE句について

if(!is_null($_GET['sid'])) $sid = (int)$_GET['sid'];

$sql = "UPDATE ideamemo_table SET update_date = '$update' WHERE sid = $sid;";
mysql_query($sql, $con) or die(mysql_error());

と書いた時に、下記のようなエラーが表示されます。
どこがどう間違っているのでしょうか。
$sidを、シングルクォーテーションでくくっても、エラーが出ます。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE sid = ''' at line 1

投稿日時 - 2014-10-25 16:08:09

QNo.8802607

すぐに回答ほしいです

質問者が選んだベストアンサー

$_GET['sid']がnullの場合,$sidの値が設定されません。
その結果,$sqlのWHERE節が,「sid=」となるため,エラーになっているのかと思います。
このあたりは,$sql自体をechoするなりしてみると理由がわかりやすくなるかと思います。

# mysql関数の利用とか$updateという文字列型っぽい物を変数展開で生成しているとか,問題点は色々ありそうですが。

投稿日時 - 2014-10-25 18:48:14

補足

$sid をhidden属性で送って、POSTで受けたら、ちゃんと動作しました。
ご指導どうもありがとうございました。

投稿日時 - 2014-10-25 20:50:29

お礼

ご回答どうもありがとうございました。

投稿日時 - 2014-10-25 19:04:16

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

$sidのあとの;はいらないのでは?

ちょっと自信ない(;_:)

投稿日時 - 2014-10-25 17:22:05

お礼

ご回答ありがとうございました。

投稿日時 - 2014-10-25 17:36:18

あなたにオススメの質問