[英]Cant get stored procedure resultset via PDO PHP
我似乎无法使用PDO(PHP)从存储过程(MYSQL)获得任何输出。
存储过程:
CREATE PROCEDURE getUserId(serviceId VARCHAR(64), serviceInput VARCHAR(32))
BEGIN
SELECT id FROM users WHERE servid = serviceId AND service = serviceInput;
END
PHP代码:
$mysqlConn = mysqlPDOLogin();
$stmt = $mysqlConn->prepare("CALL getUserId(?,?);");
$stmt->bindParam(1, $USERID);
$stmt->bindParam(2, $USERPROVIDER);
$stmt->execute();
$returned_a = $stmt->fetch();
echo $returned_a['id'];
它什么也没有收回。 我已经从存储过程中复制了基本选择代码,并直接在PHP代码中使用了它,并且可以正常工作,但是无法通过存储过程使其工作。
任何帮助,将不胜感激...
您没有进行任何明显的错误检查。 根据PDO所处的错误报告模式,Prepare(),bindParam()和execute()都会通过返回false或引发异常来提醒您注意错误。
我将假设您处于“返回假”模式。
您需要检查$ stmt是PDOStatement对象,bindParam语句没有返回false,而execute没有返回false。 如果它们中的任何一个都做了,那么您需要使用errorCode()和errorInfo()来找出问题所在。
另外,对我来说,使用存储过程进行基本的简单查询似乎有些过分。 为什么不仅仅执行以下操作?
$stmt = mysqlConn->prepare ('SELECT id FROM users WHERE servid = ? AND service = ?');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.