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 に答える