2016-12-30 32 views
0
$name = mysqli_real_escape_string($connection, $_POST["name"]); 
    $surname = mysqli_real_escape_string($connection, $_POST["surname"]); 
    $username = mysqli_real_escape_string($connection, $_POST["username"]); 
    $email = mysqli_real_escape_string($connection, $_POST["email"]); 
    $pw1 = mysqli_real_escape_string($connection, $_POST["pw1"]); 

    $query = "INSERT INTO 'users' ('id','name', 'surname', 'username', 'email', 'password') VALUES (NULL,'$name', '$surname', '$username', '$email', '$pw1')"; 

    $result = mysqli_query($connection, $query); 
    if(!$result){ 
     echo ("fail"); 
    } 

我測試,如果查詢使用工作進行查詢,如果($結果!){回聲(「失敗」);}和它呼應失敗每次和沒有數據被插入到數據庫中每一個時間!我檢查了語法,我相信它是正確的......這可能是因爲數據庫「整理」?無法使用mysqli_query

+0

打印查詢並在mysql控制檯中手動運行 – e4c5

+0

@ e4c5我已複製並粘貼'INSERT INTO'users'('id','name','surname','username','email', 'password')VALUES(NULL,'$ name','$ surname','$ username','$ email','$ pw1')'到控制檯,它說我有不正確的語法 – asker

+0

生成的SQL! – e4c5

回答

2

您不應使用tablefield名稱的單引號。您必須使用位於Esc鍵或1鍵左側或Tab鍵上側的Backtick(如``)。它應該是這樣的:

$query = "INSERT INTO `users` (`id`, `name`, `surname`, `username`, `email`, 
`password`) VALUES ('null', '$name', '$surname', '$username', '$email', '$pw1')"; 

$query = "INSERT INTO users (id, name, surname, username, email, 
password) VALUES ('null', '$name', '$surname', '$username', '$email', '$pw1')"; 

注:如果id場已設置自動遞增,那麼你可以刪除id和價值null。因爲id值會自動增加。

希望它會有幫助。

+0

謝謝!反引號和單引號太相似了! – asker

+0

歡迎和高興地知道我的答案是有幫助的。 –