2009-05-04 5 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 

それは死んでシンプルだし、それが2列に結果を返しますの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関数のラッパークラスを自分で記述する方が良いですか?

ありがとうございます!

答えて

0

Nevermind、SPを呼び出すためのmysqliをラップします。また、楽しいこともたくさんあります...

関連する問題