无法使此查询正常工作
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");
答案 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."' ");