我写了一个简单的(测试)程序,它只返回1行,为什么会这样?
SELECT *
FROM service
程序执行正常,只显示的结果只包含第一行而不是所有表记录。
答案 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>";
}