2014-11-04 107 views
0
if(true){ 
    //query 
    $insertAccount = mysqli_prepare($connection,"INSERT INTO accounts (username, password, email), VALUES (?,?,?)"); 
    //bind 
    $bindSuccess = mysqli_stmt_bind_param($insertAccount, 'sss', $username,$password,$email); 
    if(mysqli_stmt_execute($insertAccount)){ 
     header("Location: welcome.php"); 
    }else{ 
     header("Location: signup.php"); 
    } 

} 

你好,我有我的PHP代碼中的上述代碼片段,我總是被定向到signup.php,並沒有插入語句,我在這裏做錯了什麼?我很新的PHP和PHP的mysqli聲明。無法執行插入語句

if(true)僅僅是爲了測試im確定塊被執行。

+1

在您的查詢中顯示:'(username,password,email)'並且在綁定中:'$ username,$ email,$ password'順序錯誤。嘗試:'$用戶名,$密碼,$電子郵件' – vaso123 2014-11-04 14:33:45

+0

修復,謝謝。 – sutoL 2014-11-04 14:35:49

回答

0

mysqli_stmt_execute在發生錯誤時返回錯誤值。您應該確認您的查詢沒有錯誤:

if(true){ 
    //query 
    $insertAccount = mysqli_prepare($connection,"INSERT INTO accounts (username, password, email), VALUES (?,?,?)"); 
    //bind 
    $bindSuccess = mysqli_stmt_bind_param($insertAccount, 'sss', $username,$password,$email); 
    if(mysqli_stmt_execute($insertAccount)){ 
     header("Location: welcome.php"); 
    }else{ 
     printf("Error: %s.\n", mysqli_stmt_error($insertAccount)); 
     //header("Location: signup.php"); 
    } 
} 
+0

我收到了一個錯誤,即prepare語句返回一個布爾值,這意味着我的語句是錯誤的,但是我沒有看到它的任何錯誤。您怎麼看? – sutoL 2014-11-04 15:26:14

0

固定! 「INSERT INTO帳戶(用戶名,密碼,電子郵件),VALUES(?,?,?)」我的錯誤是在sql語句中,有一個額外的逗號!

+0

一個好主意是在phpmyadmin或類似的東西中運行查詢。通過這種方式,您可以查看問題是在查詢中還是在代碼中。 – Rimble 2014-11-04 16:03:57

相關問題