• ベストアンサー

上手くUPDATEされない

$sql5= 'UPDATE time SET id='.$id22.' , name="'.$name22.'", ji='.$ji2.' , kou='.$kou2.' , tan="'.$tan2.'" , nyu="'.$nyu2.'" WHERE id={$_GET["id"]}'; $res5 = mysql_query($sql5); 何がおかしいでしょうか・

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

$res5 = mysql_query($sql5) or die(mysql_error()); とすればわかると思うけど、たぶん予約語の問題じゃない? 前も指摘したと思うけど、カラム名はかならずバッククォートで囲むように。 それとわかっているとはおもいますがSQLに投入する際にはかならず エスケープ処理をいれてください。 $sql5 ='UPDATE `time` SET `id`="'.mysql_real_escape_string($id22).'"'; $sql5.=',`name`="'.mysql_real_escape_string($name22).'"'; $sql5.=',`ji`="'.mysql_real_escape_string($ji2).'"'; $sql5.=',`kou`="'.mysql_real_escape_string($kou2).'"'; $sql5.=',`tan`="'.mysql_real_escape_string($tan2).'"'; $sql5.=',`nyu`="'.mysql_real_escape_string($nyu2).'"'; $sql5.=' WHERE `id`="'.mysql_real_escape_string($_GET["id"]).'"';

drmada
質問者

お礼

出来ました!!毎度ありがとうございます。

その他の回答 (1)

回答No.1

SQLコマンドにダブルクォーテーションは使えませんよ。 name、tan、nyuの部分は、シングルクォーテーションじゃないと いけません。 分からなくなったらmysql_query()を発行する前にecho $sql5; exit;として 組み立てられたSQLを確認して、MySQLで直接実行して、 通るようになるSQLを組み立て直せばいいです。

関連するQ&A