我有一个PHP页面,我使用mysqli。
我做了两个准备好的语句SQL查询。
我的问题是,在第二个查询中,$conn->prepare($sql)
返回一个布尔值。
第二次查询:
UPDATE `users` SET `games` = ? WHERE `id` = ?
代码:
$sql = "SELECT games, username, displayname FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id);
$result = $stmt->execute();
if ($result === FALSE){
printErrorPage("Something went wrong: " . $conn->error);
die();
}
$stmt->bind_result($json, $username, $displayname);
$stmt->store_result();
if ($stmt->num_rows == 1){
$stmt->fetch();
var_dump($json);
$games = json_decode($json);
var_dump($games);
$games_new = apiUpdate($games);
if ($games_new != $games){
$json_new = json_encode($games_new);
$sql = "UPDATE `users` SET `games` = ? WHERE `id` = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("si", json_encode($games_new), $id);
$result = $stmt->execute();
if ($result !== TRUE){
printErrorPage("Something went wrong: " . $conn->error);
die();
}
}
display($username, $displayname, $games_new);
} else {
if ($stmt->num_rows == 0){
header("Location: http://moger.net/gameboard/");
} else {
//absolute mindfuck
}
die();
}
注意:我认为$conn->prepare($sql)
在SQL语法不正确时返回FALSE,但我在this syntax tester上测试了它(替换了准备好的语句)并且它说没关系。
编辑:问题已经结束,所以我要在这里提出答案: 我正在使用的用户不允许使用UPDATE命令。