phpMyAdmin,存储过程无法按预期工作

时间:2013-01-22 07:41:02

标签: mysql stored-procedures phpmyadmin

我写了一个简单的(测试)程序,它只返回1行,为什么会这样?

SELECT *
FROM service

程序执行正常,只显示的结果只包含第一行而不是所有表记录。

3 个答案:

答案 0 :(得分:3)

好吧,我只是偶然解决了:)希望有一天会有人需要:

创建程序后,phpMyAdmin中“Routines”选项卡中的“Execute”图标不起作用,只返回表中的1条记录。我下载了最后的3.5.5版本,问题是一样的。

实际上,程序本身工作非常好,只需使用SQL选项卡并手动调用它:

call myProcedure

那是所有人:)

答案 1 :(得分:0)

确保您的测试程序执行commit

根据 运行MySQL语句的方式,您可能有也可能没有隐式commit。 Phpmyadmin执行此隐式commit。但是,如果您的测试过程是通过其他方式运行的,例如像PHP这样的编程语言,那么您可能没有设置autocommit。然后你的测试程序必须发出commit语句本身,以使测试的效果出现在世界其他地方......并且对于Phpmyadmin。

答案 2 :(得分:0)

如果你每次都得到最后一行。那么可能是你的代码就是这样,

$result = mysql_query("SELECT * FROM service");
while($row = mysql_fetch_array($result))
{
  $user=$row['Username'];  //assume you have a column named Username
}

echo $user . "<br>";

但它应该如下,那么你可以得到所有数据。

$result = mysql_query("SELECT * FROM service");
while($row = mysql_fetch_array($result))
{
  $user=$row['Username'];  //assume you have a column named Username
  echo $user . "<br>";
}