Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的Mysql查询有一个错误_Php_Mysql - Fatal编程技术网

Php 我的Mysql查询有一个错误

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

错误是:

-id=1dept=Ayurvedicmake=arihantname=sample2vat=4mrp=100pack=1*100无法运行查询:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第2行“where item_code=1”附近使用的正确语法


这里有一些问题

看到您的许多变量都是字符串,就需要引用它们

我发现的另一件事是
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);