[英]how to update a table field with a variable value calculated
$ average是我想要替换/更新表中价格字段的变量。 表结构为:
和$ key是变量,通过它我可以获得此表的编号。
nid | sku | price
7 | prod-1 | 10
9 | prod-2 | 12
我正在使用的更新查询是:
$query =db_query("UPDATE products a SET a.price = $average WHERE a.sku = $key");
但它给出了一个错误:
PDOException: SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: 'tshirtm': UPDATE products a SET a.price = 1.75 WHERE a.sku = 7; Array ( ) in formModule_form_submit() (line 233 of D:\xampp\htdocs\olinestore\store\sites\all\modules\formModule\formModule.module).
我注意到WHERE条件是sku = 7-但是在您的示例数据中,sku是varchar吗? 这是想成为裸体吗?
可能的问题是您的价格列的数据类型是整数,但是您正在尝试将其更新为小数。 根据您的RDBMS,可以轻松解决此问题。
祝好运。
当$ key对应于nid时,您不应使用sku。 尝试这个:
$query =db_query("UPDATE products a SET a.price = $average WHERE a.nid = $key");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.