发送包含空格的字符串会导致SQL语法错误

时间:2013-11-04 14:20:35

标签: php mysql

我有一个选择列表,其中包含从我的数据库中提取的字符串,多个字符串包含空格并导致错误,起初PHP没有读取空格。我使用引文修复了它,但错误仍然存​​在。

这是我的PHP代码在一个文件中:

$AllDepartements = $db->getAllDepartements();
echo "<select name='Major' style='width: 270px'><option value=''>Select       Major</option>";
While ($row = mysql_fetch_array($AllDepartements))
{
$Major = $row['DName'];
print "<option value='".$Major."'>$Major</option>";

}
print "</select><br>";

这是添加函数调用:

else if($tag =='add'){
$SSN =  $_POST['SSN'];
$Class =  $_POST['Class'];
$Major =  $_POST['Major'];
$Minor =  $_POST['Minor'];

if($db->addStudent($SSN,$Class,$Major,$Minor))
header('Location:' . $form . '.php?tag=list');
else
echo mysql_error();
//echo "ERROR!";
}

最后是函数本身:

 public function addStudent($SSN,$Class,$Major,$Minor) {    
    if($result = mysql_query(" INSERT INTO student (SSN,Class,Major,Minor)    VALUES ('$SSN','$Class',$Major,$Minor ")) {
        return true ;
    }
    else 
        return false;
}

我收到的错误是:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法

2 个答案:

答案 0 :(得分:0)

您没有关闭VALUES括号:

$result = mysql_query("INSERT INTO student (SSN,Class,Major,Minor) VALUES ('$SSN','$Class',$Major,$Minor)");

而且,您正在使用已弃用的mysql库,稍后将省略该库。使用mysqli或PDO等界面。

答案 1 :(得分:0)

INSERT查询中的SYNTAX错误...

"INSERT INTO student (SSN,Class,Major,Minor) VALUES ('$SSN','$Class',$Major,$Minor)"
                                                                                 ^^^^^