2012-11-15 24 views
1

嘿有第一次海報在這裏。我使用php和mysqli創建了一個註冊表單,並且一切正常,直到實際的插入功能。mysqli插入函數不返回真或假

我檢查並重複檢查和三重檢查查詢中的變量名稱,它們是正確的,表單輸入也到達函數,但由於某種原因在£this-> connect-> query($查詢)它拒絕工作。我嘗試過無數種不同的方式來執行實際的查詢,每個都返回false。我在我的智慧結束在這裏,希望有人可以幫助!

function insertNewRecord($fname, $lname, $pass, $email, $mob, $school, $location, $connumb) 
{ 
    $query = "INSERT INTO 'dbusers' 
     (firstName, lastName, password, emailaddress, mobnumb, school, campus, connumb) 
VALUES ($fname, $lname, $pass, $email, $mob, $school, $location, $connumb)"; 
    if(!$this->connection->query($query)) { 
     echo $query; 
    } 
} 

編輯:我想通了,我忘了auto_increment在表內的用戶ID。我一直堅持這幾個小時,我覺得自己像個白癡。

感謝您的時間


+1

您是否嘗試過使用mysqli_error()來查看它是否報告了任何內容? – RonaldBarzell

+4

查詢可能不會沒有錯誤地運行,因爲'password'是MySQL中的一個關鍵字,所以您需要將其封裝在「'」(反引號)中,字符串和數據值需要用單引號或雙引號括起來。 –

+2

此外,$值應該在「'」。否則,它們被解釋爲字段名稱(如果它們包含空格,則會產生錯誤) –

回答

1

嘗試使用查詢以下形式:

$query = "INSERT INTO `dbusers` 
     (`firstName`, `lastName`, `password`, `emailaddress`, `mobnumb`, `school`, `campus`, `connumb`) 
VALUES ('$fname','$lname', '$pass', '$email', '$mob', '$school', '$location', '$connumb')"; 

但是,這是不是要走,你應該使用預處理語句來防止SQL注入的正確方法。請參閱the manual

+0

剛試過這個,不幸的是它沒有工作。儘管謝謝你的迴應。 :) – ZeCheeseKing

+0

你得到了什麼錯誤? –

+0

它直線上升沒有迴應。當我點擊提交按鈕時,頁面閃爍但之後沒有進入正確的頁面,因爲插入功能沒有返回爲真。 – ZeCheeseKing