我收到了这个查询,它没有插入数据库,但它也没有给出错误。
try {
$sth = $Db->dbh->prepare("INSERT INTO users (username,password,email,phone,first_name) VALUES (:username,:password,:email,:phone,:firstname)");
$sth->execute(array(':username' => $username,':password' => $password, ':email' => $email,':phone' => $phone,':firstname'=>$firstname));
} catch(Exception $e) {
echo $e->getMessage();
exit();
}
我已经尝试通过命令插入查询,它工作正常。网站上还有其他插入查询,这些查询工作也很好。我不确定我在这里做错了什么
答案 0 :(得分:0)
你能尝试这样的事吗?
try
{
// Prepare Statement
if (!($stmt = $mysqli->prepare("INSERT INTO users (username,password,email,phone,first_name) VALUES (?,?,?,?,?)")))
throw new Exception("Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);
// Bind Parms
if (!$stmt->bind_param("sssss", $username, $password, $email, $phone, $firstname))
throw new Exception("Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error);
// Execute Statement
if (!$stmt->execute())
throw new Exception("Execute failed: (" . $stmt->errno . ") " . $stmt->error);
}
catch (Exception $ex) {
exit('Error: '. $ex->getMessage());
}
P.S。关于对您的问题的评论的TiiJ7
建议,这两列perm
和rank
是nullable
列吗?如果没有,您可能必须在插入行时指定一个值。
此处有更多信息:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php