如何使用计算的变量值更新表字段

时间:2013-02-04 07:54:18

标签: php database

$ 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).

2 个答案:

答案 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");