2012-10-17 44 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

谢谢,这让我尽管进入了街区。 –