我想从存储过程中检索数据,这个存储过程返回使用引擎内存的临时表,
例子,如
DECLARE cur_cat CURSOR FOR CALL getSp();发布于 2011-11-10 14:14:41
游标只能使用select语句,而不能使用调用。
请参阅:http://dev.mysql.com/doc/refman/5.0/en/declare-cursor.html
上面写着:
为select_statement声明cursor_name游标
它只允许语句,因为存储过程可以返回0、1或更多的结果集;CURSOR只支持一个结果集,而MySQL不知道存储过程将如何返回。
解决方案
如果存储过程返回结果集,则在其中有一个select语句。
提取该select语句并将其放入光标定义中。
DECLARE cur_cat CURSOR FOR select_statement_extracted_from_stored_procedure.如果只想从存储过程中获取数据,请使用以下代码:
php代码示例
$sql = "CALL getsp";
$result = mysql_query($sql);
if (!$result) { die('error in query'.mysql_error()); }
while ($row = mysql_fetch_array($result)) {
echo "value is: ".htmlentities($row['field1']);
}https://stackoverflow.com/questions/8078691
复制相似问题