如何使用doctrine 2在symfony 2中使用输出参数调用mysql存储过程?

时间:2013-10-08 11:20:25

标签: mysql symfony stored-procedures doctrine-orm

我找不到使用symfony 2 doctrine 2使用mysql存储过程的任何示例。下面是我的存储过程的签名,

CREATE PROCEDURE `get_matched_users_by_name` (IN lastname VARCHAR(50), IN firstname VARCHAR(50), IN middlename VARCHAR(50), IN debug INT(11), OUT user_id INT(11), OUT user_name VARCHAR(60))

BEGIN
 .....
 .....

END

如何调用上述存储过程并访问输出参数user_id和user_name?

我已经在搜索过类似的问题了,但是找不到这样的例子,也参考了

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html#examples

1 个答案:

答案 0 :(得分:6)

您应该使用可以从entityManager->getConnection()获取的本机pdo_mysql连接,该连接返回您可以调用的pdo_mysql对象:

$sth = $connection->prepare("CALL get_matched_users_by_name(arguments)");
$sth->execute();

然后你需要使用pdo的$sth->fetch方法之一来获得结果。

如何从pdo语句中获取的引用是here