1

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

SELECT *
FROM service

该过程执行得很好,只是显示的结果只包含第一行而不是所有表记录。

4

3 回答 3

3

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

创建过程后,phpMyAdmin 中“例程”选项卡中的“执行”图标不起作用,仅返回表中的 1 条记录。我下载了最后一个3.5.5版本,问题也是一样。

实际上,该过程本身运行良好,只需使用 SQL 选项卡并手写调用它:

call myProcedure

这就是所有人:)

于 2013-01-22T19:14:49.473 回答
0

确保您的测试程序执行了commit.

根据运行 MySQL 语句的方式,您可能有也可能没有隐式commit. Phpmyadmin 隐式执行此操作commit。但是如果您的测试程序是通过其他方式运行的,例如 PHP 之类的编程语言,则可能您没有autocommit设置。然后你的测试程序必须发布commit声明本身才能使测试的效果出现在世界其他地方......以及 Phpmyadmin。

于 2013-01-22T07:49:02.357 回答
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>";
}
于 2013-01-22T08:04:47.803 回答