Php can';不能让mysql\u查询工作
无法使此查询工作Php can';不能让mysql\u查询工作,php,mysql,forms,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` ='{$captio
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");
在{$id}周围有单引号。如果您的id是数据库中的提示,则不应引用它。SQL命令中使用大括号有什么原因吗?请尝试以下方法:
mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='$caption' WHERE `photograph`.`id` ='$id' ");
试试这个:
mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='".$caption."' WHERE `photograph`.`id` = '".$id."' ");
还可以使用
intval
解析int instread。问题可能来自mysql\u real\u escape\u字符串。在新版本中,转义由mysql完成,不再由php完成,因此。。。。对我来说是这样的
$caption = $_POST['caption'];
mysql_query(" UPDATE `photo_gallery`.`photograph` SET `caption` ='".mysql_real_escape_string($caption)."' WHERE `photograph`.`id` ='".$id."' ");
把这个放在你的代码中,
$sql=“updatephoto_gallery.photo SET caption='{$caption}'其中photo.id='{$id}'
然后是echo$sql
并告诉我您看到了什么。回显计算的字符串并查找问题。尝试检查结果:如果(!mysql_query('your query'))回显mysql_errno()。:'。mysql_error()代码>'code'更新照片\u gallery.photo SET caption='',其中photo.id=