Php 我的Mysql查询有一个错误
错误是: -id=1dept=Ayurvedicmake=arihantname=sample2vat=4mrp=100pack=1*100无法运行查询:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“where item_code=1”附近使用的正确语法Php 我的Mysql查询有一个错误,php,mysql,Php,Mysql,错误是: -id=1dept=Ayurvedicmake=arihantname=sample2vat=4mrp=100pack=1*100无法运行查询:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“where item_code=1”附近使用的正确语法 这里有一些问题 看到您的许多变量都是字符串,就需要引用它们 我发现的另一件事是description=$desc和where之间没有空格 例如:如果$desc定义为测试,那么MySQL将其解释为: $sql="upd
这里有一些问题 看到您的许多变量都是字符串,就需要引用它们 我发现的另一件事是
description=$desc
和where
之间没有空格
例如:如果$desc
定义为测试
,那么MySQL将其解释为:
$sql="update item_master set department=$dept,make=$make,vat=$vat,cost=$mrp,packing=$pack,unit=$unit,exp_date=$ex,stock=$stock,description=$desc
where item_code=$id";
mysql_select_db('pds', $conn);
$result = mysql_query($sql);
这将解释错误的几个原因,一个不带引号的变量和缺少的空格
将代码更改为以下内容
description=testingwhere item_code=$id
旁注:函数和子句最好使用大写字母。这有助于将它们与代码的其他部分区分开来
另外,您的代码很容易被SQL注入。考虑使用准备好的语句,或者现在对代码进行消毒,直到你这样做。
另一个重要的注意事项
如果您仍然有问题,那么MySQL可能会抱怨正在插入的字符。因此,您需要转义数据
$sql="UPDATE item_master SET
department = '$dept', make = '$make', vat = '$vat', cost = '$mrp',
packing = $pack, unit = '$unit', exp_date= '$ex', stock = '$stock',
description = '$desc' WHERE item_code=$id";
- 仔细检查列类型,使其与数据及其长度匹配
$id
需要喜欢“$id”
mysql_real_escape_string($dept);
字符串需要被引用。并且错误与粘贴的代码不完全匹配,因此请确保在引用错误后看到正确的内容是意外的t_变量!发布准确的新代码,以及准确的错误消息try item_code='$id'";再一次:发布准确的新代码,以及PHP 5.5.0 mysql的准确错误消息\u real\u escape\u string是deprecated@vove是的,我知道。我只是向OP说明在切换到另一个新的API之前应该使用什么。但是OP的查询工作正常,但是失败了,PHP版本不是问题所在。
$sql="update item_master set department=$dept,make=$make,
vat=$vat,cost=$mrp,packing=$pack,unit=$unit,exp_date=$ex,
stock=$stock,description=$desc where item_code='$id'";
mysql_select_db('pds', $conn);
$result = mysql_query($sql);