$ average是我想要替换/更新表中的价格字段的变量。表结构是:
和$ key是变量,我得到了这个表的nid。
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).
答案 0 :(得分:0)
我注意到WHERE标准是sku = 7 - 但是在您的示例数据中,sku是varchar?这是打算成为nid吗?
问题可能是您的价格列的数据类型是一个整数,但您尝试将其更新为小数。根据您的RDBMS,可以轻松解决此问题。
祝你好运。答案 1 :(得分:0)
当$ key对应nid时,你不应该使用sku。试试这个:
$query =db_query("UPDATE products a SET a.price = $average WHERE a.nid = $key");