请帮帮我:
我想通过doctrine1
在zend1中调用mysql存储过程我的存储过程是:
CREATE PROCEDURE sp_test()
BEGIN
SELECT 'Number of records: ', count(*) from user;
END//
存储过程在phpMyAdmin中正常工作。
但如何通过zend1
在doctrine1中调用此存储过程这是对学说的简单查询
$data = Doctrine_Query::create ()->select ( "u.id" )->from ( 'user u' )->fetchArray ();
但是我想在代码中调用sp_test()存储过程。
谢谢,
答案 0 :(得分:0)
我认为您需要使用普通的pdo来调用存储过程。要做到这一点,你必须做这样的事情:
$dbh = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();
$stmt = $dbh->prepare('BEGIN sp_test(); END;')
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
基本上我不确定你使用的是什么数据库引擎。在上面的例子中,它是一种调用存储过程的Oracle方式,但作为prepare
参数的是纯sql,所以你几乎可以放任何东西。另请注意,上面的示例使用预准备语句 - 如果您不需要它,您可以使用以下代码($sql
变量保存您的sql代码):
$conn = Doctrine_Manager::getInstance()->getCurrentConnection();
$conn->execute($sql);