這是我第一次嘗試在mySQL數據庫上使用PHP運行查詢。 考慮我有一個像這樣創建的有效MDB2 db對象:$db = MDB2::connect(...
。多語句查詢mySQL/PHP
欲執行查詢($query
)所示:
SET @node_id := (SELECT cp_node_id FROM ilias.cp_item AS T1 WHERE id="ITEM-2008-11-28-8-6-5-281");
SET @id := (SELECT cmi_node_id FROM ilias.cmi_node AS T2 WHERE user_id=189 AND [email protected]_id);
SET @id = ifnull(@id, (SELECT MAX(cmi_node_id) FROM ilias.cmi_node AS T2)+1);
SET @id = ifnull(@id, 0);
INSERT INTO ilias.cmi_node
(cmi_node_id, user_id, cp_node_id, completion_status,
learner_name, progress_measure, success_status, scaled, c_timestamp)
VALUES
(@id, 189, @node_id, "completed",
"Luca Viggiani", 1.0, "passed", NULL, NOW())
ON DUPLICATE KEY UPDATE
completion_status=VALUES(completion_status),
learner_name=VALUES(learner_name),
progress_measure=VALUES(progress_measure),
success_status=VALUES(success_status),
c_timestamp=VALUES(c_timestamp);
假設上述文本在$query
,我tryed
$db->exec($query);
或
$db->extended->executeMultiple($query);
但沒有作品。
請考慮上述查詢在MySQL Workbench中正常工作。也請考慮thsat從PHP這樣運行一個簡單的(單語句)查詢,它工作太細:
$db->exec("INSERT INTO ilias.cmi_node (cp_node_id) VALUES (5);");
編輯: 也是這樣一個簡單的(兩個語句)查詢在PHP中失敗,並在工作MySQLWOrkBench:
$query2 = "SET @node_id := (SELECT cp_node_id FROM ilias.cp_item AS T1 WHERE id='ITEM-2008-11-28-8-6-5-281');".
" INSERT INTO ilias.cmi_node (cp_node_id) VALUES (@node_id);";
你得到的錯誤是什麼? –
對我來說調試並不容易,因爲代碼會留在java所消耗的soap web服務中。 BTW $ db-> exec給我1作爲結果 – lviggiani