2013-11-04 19 views
-1

我有一个选择列表包含从我的数据库中获取的字符串,多个字符串包含空格并导致错误,起初PHP没有读取空间。我用报价修正了这个错误,但错误仍然存​​在。发送包含空格的字符串导致SQL语法错误

这是在一个文件中我的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>"; 

,这是add函数调用:

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号线

+0

闭合支架的收盘'“'一个错误的一边。请呼应你的查询和首先做一些调试。 – Nanne

+0

@deceze :这是如何重复这个问题的?我的意思是,同样的问题在这个代码中,当然,但这不是问题,是吗?虽然这是一个很糟糕的研究。 – Nanne

回答

0

使用近“”正确的语法手册你没有关闭VALUES括号:

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

而且也,你使用一个已弃用的库mysql它将在稍后被省略。使用mysqli或类似PDO的界面。在INSERT查询

0

语法错误......

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