我在for循环中运行查询并出现意外的T_STRING错误。请帮我。我只是想回应一下这个问题。感谢
<?php
$row = 1;
if (($handle = fopen("book1.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
$query="UPDATE users SET email_alert=1 where email="trim($data[$c]")";
echo($query);
}
}
fclose($handle);
}
?>
答案 0 :(得分:4)
$query="UPDATE users SET email_alert=1 where email="trim($data[$c]")";
应该是:
$query="UPDATE users SET email_alert=1 where email='".trim($data[$c])."')";
在PHP中,字符串连接具有以下语法:$string = $str1.$str2.$str3;
注意:您的SQL查询无效。最后还有额外的)
。
答案 1 :(得分:0)
$query="UPDATE users SET email_alert=1 where email='".trim($data[$c])."')";
答案 2 :(得分:0)
$query="UPDATE users SET email_alert=1 where email="trim($data[$c]")";
应该是
$query="UPDATE users SET email_alert=1 where email='trim($data[$c]')";
您不能在字符串中使用双引号来引用数据,也不能在字符串本身开始和结束时使用双引号。
编辑添加:
如果你想说清楚,你可以连接:
$query="UPDATE users SET email_alert=1 where email='" . trim($data[$c] . "')";
答案 3 :(得分:0)
$query="UPDATE users SET email_alert=1 where email='".trim($data[$c]).'";
对于查询,我更喜欢其他方式
$a=trim($data[$c]);
$query=<<<HERE
UPDATE users SET email_alert=1 where email='$a'
HERE;
答案 4 :(得分:0)
您可以尝试替换此
$query="UPDATE users SET email_alert=1 where email="trim($data[$c]")";
sprintf
最好
$query= sprintf("UPDATE users SET email_alert=1 where `email` = '%s'",trim($data[$c]));
答案 5 :(得分:0)
代码应为
$query="UPDATE users SET email_alert=1 WHERE email='" . trim($data[$c]) . "';";
括号位于错误的地方
编辑:忘记添加'