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

PHP Update查询报错求助:time字段语法问题及正确写法咨询

解决MySQL UPDATE语句的语法错误问题

嘿,我看到你在写UPDATE语句的时候踩坑了,别着急,咱们一步步把问题解决掉!

问题根源

你用了单引号'来包裹字段名(比如'offer_punch'),但在MySQL里,单引号是用来定义字符串常量的,字段名需要用反引号`(键盘左上角~键对应的符号)来包裹——如果字段名不是SQL关键字,甚至可以不用任何引号。

你的原语句把字段名当成字符串处理,数据库自然找不到对应的列,所以才会返回“出现错误”的提示。

正确的UPDATE语句写法

把所有包裹字段名的单引号换成反引号就行,示例如下:

$query = "UPDATE nesbaty_offer 
          SET `offer_punch` = '$offer_punch', 
              `offer_description` = '$offer_description', 
              `terms` = '$terms', 
              `sales_discount` = '$sales_discount', 
              `referal` = '$referal', 
              `duration` = '$duration'
          -- 一定要加上WHERE条件!不然会更新表中所有数据!
          WHERE your_condition_here;";

重要提醒:规避SQL注入风险

上面的写法虽然修正了语法错误,但直接把变量拼进SQL语句里存在严重的SQL注入漏洞,生产环境里强烈建议改用预处理语句(Prepared Statements),比如用PDO或者mysqli实现:

PDO示例

// 假设你已经建立了PDO连接$pdo
$stmt = $pdo->prepare("UPDATE nesbaty_offer 
                       SET `offer_punch` = ?, 
                           `offer_description` = ?, 
                           `terms` = ?, 
                           `sales_discount` = ?, 
                           `referal` = ?, 
                           `duration` = ?
                       WHERE your_condition_here;");

$stmt->execute([$offer_punch, $offer_description, $terms, $sales_discount, $referal, $duration]);

mysqli示例

// 假设你已经建立了mysqli连接$conn
$stmt = $conn->prepare("UPDATE nesbaty_offer 
                        SET `offer_punch` = ?, 
                            `offer_description` = ?, 
                            `terms` = ?, 
                            `sales_discount` = ?, 
                            `referal` = ?, 
                            `duration` = ?
                        WHERE your_condition_here;");

$stmt->bind_param("ssssss", $offer_punch, $offer_description, $terms, $sales_discount, $referal, $duration);
$stmt->execute();

预处理语句会自动处理变量的转义,从根本上避免SQL注入,这是后端开发必须遵循的最佳实践。

内容的提问来源于stack exchange,提问作者Jayvirsinh Vaghela

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:36:02