2009-05-04 3 views
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: [Сообщение об ошибке: не может выполнить утверждение] [Last выполненные запрос: CALL get_log_entries()] [Native код: 1312] [Native сообщение: ПРОЦЕДУРА wh_search.get_log_entries не может вернуть результат, установленный в данном контексте]»

Теперь у меня есть пара вопросов:
1. Возможно ли даже выполнение SP с использованием MDB2 и возврат наборов результатов?
2. Или лучше написать класс оболочки для «родных» функций PHP-MySQL?

Спасибо!

ответ

0

Nevermind, обертывание mysqli для вызова SP. Также много веселья ...

Смежные вопросы