用于在for循环中运行mysql查询的意外T_STRING

时间:2012-10-03 15:04:41

标签: php mysql

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

6 个答案:

答案 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]) . "';";

括号位于错误的地方

编辑:忘记添加'