我有以下代码。它在phpmyadmin的sql接口中执行时有效,但是当我在服务器$stmt = $con->prepare($sql)
上执行它时总是返回false并且我退出时出错。
请注意$stmt = $con->prepare($sql)
不会返回错误消息。我恐怕我可能在这里做错了什么?
我认为我在这里缺少一些重要的东西!
在修改它之前,Update语句也正常工作,以返回逗号分隔的更新ID列表。
$sql = "SET @uids := null;
UPDATE userpicks, brackets
SET userpicks.player1 = ?, userpicks.pick = ?
WHERE userpicks.id_user = ? AND userpicks.id_tournament = ? AND brackets.stage > ? AND userpicks.player1 = ?
AND ( SELECT @uids := CONCAT_WS(',', brackets.id, @uids) );
SELECT @uids;";
if ($stmt = $con->prepare($sql)) {
$stmt->bind_param('iiiiii', $noPlayerID, $noPlayerID, $_SESSION ["id"], $id_tournament, $bracket_stage, $id_player);
} else {
echo mysqli_error($con);
return getJSONArrayError("Error occurred");
}
答案 0 :(得分:-2)
我认为你在PHP中混合了Procedural和OOP方法 http://php.net/manual/en/mysqli.quickstart.dual-interface.php 尝试 $语句= mysqli->制备($ CON,$ SQL) 代替 ($ stmt = $ con> prepare($ sql))