私はここ数時間この作業をしようとしています。私は、単純なストアドプロシージャと呼ばれる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関数のラッパークラスを自分で記述する方が良いですか?
ありがとうございます!