我收到错误:
ERROR: SQLSTATE[HY000]: General error: 2053
我不知道为什么会发生这种情况,因为代码工作正常并且数据库已更新,但它仍然返回此错误。
这是我的代码:
<?php
header("Content-Type: application/json; charset=UTF-8");
require 'UHCauth.php';
try {
$conn = new PDO("mysql:host=$mysql_serv;dbname=$mysql_db", $mysql_user, $mysql_pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
if(isset($_GET['d6518e47'])) {
$USERNAME = $_GET['d6518e47'];
$stmt = $conn->prepare(
"UPDATE $mysql_table
SET KILLS = KILLS+1 WHERE USERNAME = :USERNAME"
);
$stmt->execute(array('USERNAME' => $USERNAME));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($row);
} else {
$stmt = $conn->prepare(
"SELECT * FROM $mysql_table
ORDER BY
McVersion DESC,
ModVersion DESC
LIMIT 1"
);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($row);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
最佳答案
$row = $stmt->fetch(PDO::FETCH_ASSOC);
是会导致错误的行。
为什么?
因为更新后数组中没有任何内容可获取
记住这一点
PDO::FETCH_ASSOC: returns an array indexed by column name as returned in your result set
所以,没有结果集...没有聚会
如果你想知道命令的退出状态,只需使用execute()
函数的返回值
$rv = $stmt->execute(array('USERNAME' => $USERNAME));
关于php - MySql一般错误: 2053,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602269/