0

このクエリを機能させることができません

if (isset($_GET['id'])){
  $id = $_GET['id'];

  if(isset($_POST['submit'])) {

    $id = (int)$id;
    $caption = mysql_real_escape_string($_POST['caption']);

    mysql_query(" UPDATE  `photo_gallery`.`photograph` SET  `caption` ='{$caption}' WHERE  `photograph`.`id` ='{$id}' ");

しかし、手動でこれに変更すると機能します

mysql_query("UPDATE  `photo_gallery`.`photograph` SET  `caption` =  'bruv' WHERE  `photograph`.`id` =3");
4

4 に答える 4

0

{$id} を一重引用符で囲みます。ID がデータベースのヒントである場合は、引用符で囲む必要はありません。

于 2012-07-18T09:34:54.343 に答える
0

問題は mysql_real_escape_string にある可能性があります。新しいバージョンでは、エスケープはphpではなくmysqlによって行われるため、....私にとってはこのように機能しました。

$caption = $_POST['caption'];

mysql_query(" UPDATE  `photo_gallery`.`photograph` SET  `caption` ='".mysql_real_escape_string($caption)."' WHERE  `photograph`.`id` ='".$id."' ");
于 2012-07-18T12:51:37.937 に答える
0

SQL コマンドの中括弧には理由がありますか? 代わりにこれを試してください:

mysql_query(" UPDATE  `photo_gallery`.`photograph` SET  `caption` ='$caption' WHERE  `photograph`.`id` ='$id' ");
于 2012-07-18T09:37:23.167 に答える
0

これを試して:

mysql_query(" UPDATE  `photo_gallery`.`photograph` SET  `caption` ='".$caption."' WHERE  `photograph`.`id` = '".$id."' ");

intvalint instread の解析にも使用します。

于 2012-07-18T09:40:37.770 に答える