2012-10-17 77 views
1

我正在寫一個準備好的語句,這些語句應該在變量$ GLOBALS ['mysqli']中預先選擇的數據庫中插入數據到表中。連接已經過測試,這不是我遇到的問題。每當我準備好的聲明涉及INSERT INTO時,我只會遇到麻煩。我知道表名和字段名是正確的,但是$ stmt總是假。是什麼賦予了?Mysqli編寫的插入語句總是返回false

$stmt = $GLOBALS['mysqli']->prepare("INSERT INTO audit_RefreshCount (user, count, lastrefresh) values (?,?,?)"); 
if ($stmt == TRUE) { 
$stmt->bindParam('ssi', $_SESSION['username'], '0', time()); 
//$stmt->bind_Param('ssi', $_SESSION['username'], '0', time());  // Also doesn't work. 
$stmt->execute(); 
} 
+0

以供將來參考,如果你在一個if語句有一個布爾的'== TRUE'是多餘的。 '如果($ stmt)'會好的。 – twodayslate

回答

1

if條件是錯誤的,因爲prepare方法將返回mysqli_stmt類實例或FALSE。所以,你應該測試,如:

if ($stmt !== FALSE) { 
    $stmt->bind_param('ssi', $_SESSION['username'], '0', time()); 
    $stmt->execute(); 
} else { 
    // Could not prepare statement 
} 
+0

謝謝,這讓我儘管進入了街區。 –