1

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

2 回答 2

0

$key 对应 nid 时,不应该使用 sku。尝试这个:

$query =db_query("UPDATE products a SET a.price = $average WHERE a.nid = $key");
于 2013-02-04T08:05:14.623 回答
0

我注意到 WHERE 标准是 sku=7 - 但是在您的示例数据中,sku 是 varchar?这是故意的吗?

可能问题是您的价格列的数据类型是整数,但您正在尝试将其更新为小数。根据您的 RDBMS,这很容易解决。

祝你好运。

于 2013-02-04T07:56:39.483 回答