无法使mysql_query工作

时间:2012-07-18 09:28:33

标签: php mysql forms

无法使此查询正常工作

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 个答案:

答案 0 :(得分:0)

{$ id}周围有单引号。如果你的id是数据库中的提示,则不应该引用它。

答案 1 :(得分:0)

你的SQL命令中有大括号的原因吗?试试这个:

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

答案 2 :(得分:0)

试试这个:

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

还使用intval来解析int instread。

答案 3 :(得分:0)

问题可能来自mysql_real_escape_string。在新版本中,转义是由mysql完成的,而不是由php完成的....所以对我来说它就是这样的。

$caption = $_POST['caption'];

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