首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql使用游标从存储过程获取值。

问Mysql使用游标从存储过程获取值。
EN

Stack Overflow用户
提问于 2011-11-10 11:19:07
回答 1查看 1.2K关注 0票数 0

我想从存储过程中检索数据,这个存储过程返回使用引擎内存的临时表,

例子,如

代码语言:javascript
复制
DECLARE cur_cat CURSOR FOR CALL getSp();
EN

回答 1

Stack Overflow用户

发布于 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语句并将其放入光标定义中。

代码语言:javascript
复制
DECLARE cur_cat CURSOR FOR select_statement_extracted_from_stored_procedure.

如果只想从存储过程中获取数据,请使用以下代码:

php代码示例

代码语言:javascript
复制
$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']);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8078691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档