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;
}