有没有任何方法可以用PDO获取存储过程的参数及其顺序


Is there any way to get the parameters and their order of a stored proc with PDO?

即使命名params,使用"bindParam"也需要在调用存储过程时知道顺序参数应该在中。

有没有办法:

  • 调用存储过程,在处理语句时,不必知道参数的顺序

  • 或者从语句或PDO对象中获取存储过程所需参数的名称和顺序?

为什么不按名称绑定参数?

$stmt = $pdo->prepare("SELECT * FROM mytable WHERE n = :num AND z = :zone");
$stmt->execute(array( "zone" => $zone, "num" => $num ));

顺便说一句,我更喜欢简单地通过将数组传递给execute()来传递参数。没有必要使用bindParam(),这样做也没有好处。有参数类型说明符,但如果你阅读PDO代码,这些都会被忽略,至少在PDO_MySQL驱动程序中是这样。


回复你的评论:好的,现在我明白你的问题了。

不,没有办法查询MySQL存储的proc来知道它需要什么参数,或者你将如何在proc中使用它们。你必须至少了解你自己的代码。