我最近更改了服务器,现在某些mysqli查询失败,没有任何通知。
$mysqli = new mysqli($h, $u, $p, $db);
if (mysqli_connect_errno()) {
error_log("Connect failed: %s\n" . mysqli_connect_error());
}
if ($stmt = $mysqli->prepare("INSERT INTO users (email,
firstName,
lastName,
phone)
VALUES (?, ?, ?, ?)"))
{
$stmt->bind_param("sssi", $email, $firstName, $lastName, $phone);
$stmt->execute();
$stmt->close();
} else {
error_log('[INSERT]errno: %d, error: %s', $mysqli->errno, $mysqli->error);
}
永远不会调用error_logs(但其他error_log()工作正常)。 mysqli SELECT查询工作正常。所有INSERT / UPDATE查询都失败,没有错误。
唯一的变化可能是服务器之间的MySQLi版本更改。
答案 0 :(得分:1)
请用此替换您的查询。我已从prepare()
语句中删除了您的if
方法,并将其执行放在那里。
$stmt = $mysqli->prepare("INSERT INTO users (email, firstName, lastName, phone) VALUES (?, ?, ?, ?)");
$stmt->bind_param("sssi", $email, $firstName, $lastName, $phone);
if($stmt->execute()){ // if the query successfully executes
echo "success";
} else {
// display error
}
这应该可以解决您的问题,希望它可以帮到您!如果你有任何问题;发表评论!