You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP执行UPDATE语句遇MariaDB SQL语法错误,已找到可用代码

MySQL/MariaDB SQL语法错误排查与解决

错误场景

执行以下SQL语句时触发语法错误:

UPDATE problemas SET situacao='Concluido' WHERE id=?

错误提示:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?' at line 1

问题原因

?是数据库抽象层(如PDO、MySQLi)的预处理占位符,并非MariaDB原生SQL支持的语法。直接执行带?的语句会被数据库判定为语法错误。

解决方法

根据使用场景选择对应方案:

1. 通过PHP数据库扩展执行(推荐,防止SQL注入)

PDO方式
// 已初始化PDO连接$pdo
$sql = "UPDATE problemas SET situacao='Concluido' WHERE id=?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$your_id_value]); // 传入实际id值
MySQLi方式
// 已初始化MySQLi连接$conn
$sql = "UPDATE problemas SET situacao='Concluido' WHERE id=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $your_id_value); // "i"代表整数类型,按需调整为"s"字符串/"d"浮点数
$stmt->execute();

2. 直接在数据库客户端执行

将?替换为具体的id数值:

UPDATE problemas SET situacao='Concluido' WHERE id=123; -- 123替换为目标id

内容的提问来源于stack exchange,提问作者bruno.slash.lima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:10:32