[英]can't make mysql_query work
無法使該查詢正常工作
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是數據庫中的提示,則不應引用該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
來解析intread。
問題可能出在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."' ");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.