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 ですか? これはニドであることを意図していましたか?

おそらく問題は、価格列のデータ型が整数であるのに、10 進数に更新しようとしていることにあります。RDBMS によっては、これは簡単に解決できます。

幸運を。

于 2013-02-04T07:56:39.483 に答える