PHP操作MariaDB更新数据库Token时出现SQL语法错误如何解决?
问题排查与解决
错误原因
- SQL语法错误,
SET子句内的Token = :Token后多写了多余的逗号。逗号仅用于分隔多个待更新的字段,只有单个更新字段时不需要添加,且不能放在WHERE关键字之前,这是触发语法报错的直接原因。 - 你已经对属于SQL保留字的
Index字段用反引号包裹,这部分写法没有问题。
正确实现代码
<?php // 移除了:Token后面的多余逗号,修正SQL语法 $sql = "UPDATE ComptePro SET `Token` = :Token WHERE `Index` = :Index"; echo $Indexuser; echo " "; echo $token; $req = $bdd->prepare($sql); $req->bindParam(':Token', $token, PDO::PARAM_STR); $req->bindParam(':Index', $Indexuser, PDO::PARAM_INT); $req->execute();
可选调试优化
如果后续需要更清晰的错误提示,可以开启PDO异常模式捕获报错:
// 在初始化数据库连接后添加即可 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try { $req->execute(); } catch(PDOException $e) { echo "执行错误:" . $e->getMessage(); }
内容的提问来源于stack exchange,提问作者THE_DOCTOR01
相关产品推荐
相关产品推荐

