0

我在 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);
}
?>
4

6 回答 6

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 查询无效。最后还有额外)的。

于 2012-10-03T15:06:09.433 回答
0
 $query="UPDATE users SET email_alert=1 where email='".trim($data[$c])."')";
于 2012-10-03T15:06:35.780 回答
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] . "')";
于 2012-10-03T15:06:50.727 回答
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;
于 2012-10-03T15:08:31.763 回答
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]));
于 2012-10-03T15:08:53.423 回答
0

代码应该是

$query="UPDATE users SET email_alert=1 WHERE email='" . trim($data[$c]) . "';";

支架放错地方了

编辑:忘记添加'

于 2012-10-03T15:11:35.827 回答