2013-02-21 156 views
2

自學的同時SQL和PHP,並正在此錯誤:MySQL錯誤:插入表單數據到數據庫

錯誤:你在你的SQL語法錯誤; VALUES('duke','john','doe','cpsc','teacher'at line)檢查與您的MySQL服務器版本相對應的手冊,以找到正確的語法,以便在'姓名,姓氏,Course_id,Professor' 1與查詢

我的代碼應該從表格中的信息,並將其插入到一個數據庫,我已經cread我已經看了它幾個小時,並已經搜索了一段時間的互聯網,但仍然可以而她不知道什麼造成這種誰能幫我出

下面是與形式我test.php的文件:?

<html> 
    <head> 
     <title>Insert data into database</title> 
    </head> 

    <body> 
     <form method="post" action="handler.php"> 
      <p>What is your University:</p> 
      <input type="text" name="uni"><br> 

      <p>What is your First Name:</p> 
      <input type="text" name="f_name"><br> 

      <p>What is your Last Name:</p> 
      <input type="text" name="l_name"><br> 

      <p>What is your Course:</p> 
      <input type="text" name="cou_id"><br> 
      <p>Who was your Professor for that course?:</p> 

      <input type="text" name="pro_id"><br> 
      <input type="submit" value="Submit" /> 
     </form> 
    </body> 
</html> 

,這裏是我的^ h存儲從表格中的信息到數據庫andler.php文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <title>Untitled Document</title> 
    </head> 

    <body> 
     <?php 
      $uni = $_POST['uni']; 
      $uni= mysql_real_escape_string($uni); 
      $f_name = $_POST['f_name']; 
      $f_name = mysql_real_escape_string($f_name); 
      $l_name = $_POST['l_name']; 
      $l_name = mysql_real_escape_string($l_name); 
      $cou_id = $_POST['cou_id']; 
      $cou_id = mysql_real_escape_string($cou_id); 
      $pro_id = $_POST['pro_id']; 
      $pro_id = mysql_real_escape_string($pro_id); 

      $con = mysql_connect("localhost","root","") or die(mysql_error()); 
      mysql_select_db("tester") or die(mysql_error()); 

      if (!mysql_query("INSERT INTO my_hw (University, First Name, Last Name, Course_id, Professor) VALUES ('$uni','$f_name','$l_name','$cou_id','$pro_id')")) 
       { 
       die('Error: ' . mysql_error() . " with query ". $sql); 
       } 
      echo "1 record added"; 

      mysql_close($con); 
     ?> 
    </body> 
</html> 

感謝

回答

1

您的名字空間和姓列:

INSERT INTO my_hw (University, `First Name`, `Last Name`, Course_id, Professor) VALUES  ('$uni','$f_name','$l_name','$cou_id','$pro_id') 

注意添加反引號。

+0

之間謝謝空格分隔,這是一個愚蠢的錯誤。你應該有反駁保留字以及?他們還有其他用途嗎? – spentpat 2013-02-21 09:31:43

+0

@spentpat - 在你的情況下,它們可以用於列名中的空格。我不會推薦使用保留字作爲列名。 – 2013-02-21 11:19:28

0

更改您的列名,使它們沒有空格。列名中有空格是不好的做法。

0

由於您使用mysql,列名必須由反引號不是單引號,因爲它們含有的,

INSERT INTO my_hw (University, `First Name`, `Last Name`,...