我一直茫然地看着这个错误,似乎无法知道问题是什么。当我运行查询时,我收到此错误:
意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING 在这一行:
$sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user=$rows['user'] ";
答案 0 :(得分:31)
试试这个
echo $sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user='".$rows['user']."' ";
答案 1 :(得分:8)
使用{$符号前。并且还添加了addslashes函数来逃避特殊字符。
$sqlupdate1 = "UPDATE table SET commodity_quantity=".$qty."WHERE user=".addslashes($rows['user'])."'";
答案 2 :(得分:6)
尝试
$sqlupdate1 = "UPDATE table SET commodity_quantity=$qty WHERE user={$rows['user']} ";
在双引号字符串中,您需要使用大括号进行数组访问。
答案 3 :(得分:2)
将您的代码更改为。
<?php
$sqlupdate1 = "UPDATE table SET commodity_quantity=".$qty."WHERE user=".$rows['user'];
?>
您的查询中存在语法错误。
答案 4 :(得分:0)
就我而言,heredoc引起了问题。 PHP 7.3或更高版本没有问题。但是,如果在空格中使用heredoc,则PHP 7.0.33会出错。
我的示例代码
$rexpenditure = <<<Expenditure
<tr>
<td>$row->payment_referencenumber</td>
<td>$row->payment_requestdate</td>
<td>$row->payment_description</td>
<td>$row->payment_fundingsource</td>
<td>$row->payment_agencyulo</td>
<td>$row->payment_agencyproject</td>
<td>$$row->payment_disbustment</td>
<td>$row->payment_payeename</td>
<td>$row->payment_processpayment</td>
</tr>
Expenditure;
如果PHP 7.0.33上有空格,它将出错。
答案 5 :(得分:-1)
我的问题也在heredoc中。我在分号后的if / then语句和右括号内使用了它。因此,我将右括号移到了自己的行,并且问题已解决。
我更改了:
... ;}
收件人:
... ;
}