PHP Works但是给出了SQL语法错误

I just wrote this bit of code which echo's out what it's supposed to but after the echo statement it give me the error-

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

why's this happening? how do i fix it?

<?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 {
}

?>

Try wrapping your query with quote:

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

or change your query altogether by using PDO. Because, mysql_* function are deprecated.

If $class is empty you'd get that error which would leave your query as SELECT * FROM classes WHERE class_id = which is not valid. Try quote it. If you quote it, at least you'll get SELECT * FROM classes WHERE class_id = ''

"SELECT * FROM classes WHERE class_id = '".$class."'";

I am going to assume that something is wrong in the $class variable when passed to the query. What I usually do in such scenarios is assign the SQL query to a string variable and dump it to test the entire query at once. Helps me find out SQL syntax errors or if there's any undesired characters.

<?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) {
        $sql = "SELECT * FROM classes WHERE class_id = '{$class}'" ; // use {} inside double quotes
        var_dump($sql); // check out the what the query becomes 
        $classes = mysql_query($sql) or die(mysql_error());
        while($currentRow = mysql_fetch_array($classes)){
        echo $currentRow['class_name'];
        }
    }  
}
else {
}