public static function query($sql, $arg = array(), $silent = false, $unbuffered = false) {
// ... 前面的代码省略 ...
// 执行 SQL 查询
$ret = self::$db->query($sql, $silent, $unbuffered);
if (!$unbuffered && $ret) {
// 【问题出在这里】
// 使用 strpos 查找第一个空格的位置来截取命令名称(如 DELETE, SELECT 等)
$cmd = trim(strtoupper(substr($sql, 0, strpos($sql, ' '))));
if ($cmd === 'SELECT') {
// ...
} elseif ($cmd === 'UPDATE' || $cmd === 'DELETE') {
// 如果命令是 UPDATE 或 DELETE,将返回值替换为受影响的行数
$ret = self::$db->affected_rows();
} elseif ($cmd === 'INSERT') {
$ret = self::$db->insert_id();
}
}
return $ret;
}