0
我一直在努力使這項工作在過去的幾個小時。我有一個簡單的存儲過程稱爲get_log_entries:PEAR MDB2 executeStoredProc並返回一個結果集。可能?值得?
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_log_entries`(p_min_id INT)
BEGIN
SET p_min_id = IFNULL(p_min_id, -1);
SELECT * FROM db_log WHERE item_id > p_min_id;
END
它死了簡單,兩列返回結果:ITEM_ID(int)和log_description(VARCHAR)。
我正在嘗試使用MDB2對象執行此操作,但至今沒有運氣。下面是正在試圖做到這一點的代碼:
$conn = MDB2::factory('mysql://myUser:[email protected]/my_db');
if (PEAR::isError($conn)) {
die ("Cannot connet to DB(10): " . $conn->getMessage());
}
// loading the Function module
$conn->loadModule('Function');
$params = array('null');
$result = $conn->executeStoredProc('get_log_entries', $params);
if (PEAR::isError($result)) {
$msg = $result->getMessage() . "<br /><br />" . $result->getUserInfo();
die ($msg);
}
在這一點上這個可愛的錯誤顯示了以下消息:
結果集「_doQuery:[錯誤消息:無法 執行語句] [尾頁執行 查詢:CALL get_log_entries()] [本機代碼 :1312] [本機消息:PROCEDURE wh_search.get_log_entries不能返回 在給定上下文]」
現在我有幾個問題:
1.是否可以使用MDB2執行SP並返回結果集?
2.或者爲自己的「本地」PHP-MySQL函數編寫一個包裝類更好嗎?
謝謝!