2012-03-06 101 views
10

我一直staringly blanky这个错误似乎并不能知道的问题is.When我运行什么查询我得到这个错误:意外T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING错误

unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING at this line:

$sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user=$rows['user'] "; 
+0

'$ sqlupdate1 = “UPDATE SET表commodity_quantity = $数量WHERE用户= $行[用户]”;' – Gordon 2012-03-06 11:49:49

+0

参见[字符串中的变量解析章](http://php.net/manual /en/language.types.string.php#language.types.string.parsing)。我们希望您在将这些值插入查询之前对其进行消毒处理,而不是使用预处理语句。 – Gordon 2012-03-06 11:52:14

回答

25

试试这个

echo $sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user='".$rows['user']."' "; 
+0

谢谢,它的工作。但现在让我们说我想更新多个行我该怎么做,因为这段代码似乎不工作: echo $ sqlupdate1 =“UPDATE table SET commodity_quantity = $ qty AND name = $ name WHERE user ='”。$ rows ['用户']。“'”; – che 2012-03-09 12:40:50

4

尝试

$sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user={$rows['user']} "; 

您需要为双引号的字符串数组访问大括号。

+1

你不需要添加大括号。你可以简单地省略单引号。 – Gordon 2012-03-06 11:47:16

+0

将支架移动到美元符号 – MMM 2012-03-06 11:49:03

1

将您的代码更改为。

<?php 
$sqlupdate1 = "UPDATE table SET commodity_quantity=".$qty."WHERE user=".$rows['user']; 
?> 

查询中出现语法错误。

+0

谢谢,它的工作。但现在,让我们说我想更新多行我该怎么做,因为这段代码似乎不工作: echo $ sqlupdate1 =“ UPDATE表SET商品数量= $数量和名称= $名称WHERE用户='“。$ rows ['user']。”'“; – che 2012-03-09 12:44:23

+0

对于这一点看到这一点。 http://stackoverflow.com/questions/3432/multiple-updates-in-mysql 和 http://www.tizag.com/sqlTutorial/sqlupdate.php – Milap 2012-03-09 12:57:41

7

使用{$符号前。还可以添加addslashes功能来转义特殊字符。

$sqlupdate1 = "UPDATE table SET commodity_quantity=".$qty."WHERE user=".addslashes($rows['user'])."'"; 
相关问题