3

本来の内容をエコーするこのコードを書きましたが、エコーステートメントの後にエラーが発生します-

SQL 構文にエラーがあります。1 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

なぜこれが起こっているのですか?どうすれば修正できますか?

<?php
$myclasses = explode(',', $_SESSION['classlist']);  
$theirclasses = explode(',', $user_info['classlist']);
$common_classes = array_intersect($myclasses, $theirclasses);

if (count($common_classes) > 0) {     

    foreach ($common_classes as $class) {
        $classes = mysql_query("SELECT * FROM classes WHERE class_id = ".$class) or die(mysql_error());
        while($currentRow = mysql_fetch_array($classes)){
        echo $currentRow['class_name'];
        }
    }  
}
else {
}

?>
4

3 に答える 3

2

クエリを引用符で囲んでみてください:

$classes = mysql_query("SELECT * FROM classes WHERE class_id = '".$class."'") or die(mysql_error());

または、 PDOを使用してクエリを完全に変更します。mysql_* 関数は廃止されたためです。

于 2012-11-23T23:35:32.100 に答える
-1

$class が空の場合、クエリがSELECT * FROM classes WHERE class_id =無効であるというエラーが発生します。引用してみてください。あなたがそれを引用すれば、少なくともあなたは得るでしょうSELECT * FROM classes WHERE class_id = ''

"SELECT * FROM classes WHERE class_id = '".$class."'";
于 2012-11-23T23:36:44.273 に答える