私はPrestashopで作業しています。注文用の出荷ラベルを生成するモジュールがあります。ラベルを作成すると、キャリアウェブサイトで使用できるトラッキングコードが生成されます。しかし問題は、荷送人が追跡コードを受け取るために、このコードをコピーしてプレstashopに貼り付ける必要があることです。このプロセスを自動化して、システム内の人間のエラーを最小限に抑えることが私の目標です。SQL Submittopicの正しい構文
私は、トラッキングコード(ps_order_carrier、tracking_number)を格納しているprestashopのデータベース内にテーブルとカラムを見つけました。データベースのこの値を変更すると、意図したとおりに順序が変わることが確認されました。 prestashopモジュールの中には、追跡番号と、私がそれ自身のテーブルに必要とする可能性の高い注文IDのような様々な注文情報を提出するコードセクションがありますので、私はこのコード部分を複製して、私のニーズ。以下は、モジュール内のコードです:
$sql = 'INSERT INTO '._DB_PREFIX_.$this->name.'_labels
(
id_order,
id_shipment,
postage_label_ref_id,
postage_label_object,
postage_label_updated_at,
postage_label_label_url,
tracking_code,
selected_rate_ref_id,
selected_rate_object,
selected_rate_updated_at,
selected_rate_service,
selected_rate_carrier,
selected_rate_shipment_ref_id,
tracker_ref_id,
tracker_object
)
VALUES
(
"'.(int)$data['id_order'].'",
"'.pSQL($data['id_shipment']).'",
"'.pSQL($data['postage_label']['ref_id']).'",
"'.pSQL($data['postage_label']['object']).'",
"'.pSQL($data['postage_label']['updated_at']).'",
"'.pSQL($data['postage_label']['label_url']).'",
"'.pSQL($data['tracking_code']).'",
"'.pSQL($data['selected_rate']['ref_id']).'",
"'.pSQL($data['selected_rate']['object']).'",
"'.pSQL($data['selected_rate']['updated_at']).'",
"'.pSQL($data['selected_rate']['service']).'",
"'.pSQL($data['selected_rate']['carrier']).'",
"'.pSQL($data['selected_rate']['shipment_ref_id']).'",
"'.pSQL($data['tracker']['ref_id']).'",
"'.pSQL($data['tracker']['object']).'"
)';
Db::getInstance()->Execute($sql);
私は直接の下にこれのコピーを作り、私のニーズを満たすために、それを修正したが、私はそれがやりたいように思えません。私は構文を乱す気がします。それは少し混沌としたのですが、ここで私はこれを書いているとして持っているものですので、私はそれのいくつかの異なるバリエーションを試してみた:
$sql2 = 'INSERT INTO `ps_order_carrier` WHERE `id_order` = '.(int)$data['id_order'].'
(
tracking_number
)
VALUES
(
"'.pSQL($data['tracking_code']).'"
)';
Db::getInstance()->Execute($sql2);
これは私たちに多くの時間を節約になると任意の助けをいただければ幸いです。
ありがとうございます!
あなたはここで更新したくないと確信していますか? INSERTにはWHERE句がありません。 'INSERT ... SELECT'と' INSERT ... ON DUPLICATE KEY UPDATE'だけが行います。 –
不明な質問が悪い回答を引き付け始めています。あなたは(良い)回答と私のコメントを与えられている、そう? –
SQLタグを考慮し、Prestashop 1を除外している人のみの間違った答え:)。 –