似乎这个php代码获取了数据库中的所有行,但是没有获取第一行。如果调用数据库中的过程(请参阅下面的过程),它将按预期显示所有行。数据库有四列,在代码中它使用echo打印出第二行的数据,发生的事情是第一条记录没有显示,所以它没有被提取我认为。那么,可能是什么问题?
//this is the broken part of my code
$statement = $conn->prepare('call GetImage()');
$statement->execute();
while($row = $statement->fetch()){
$dest_slash = str_replace('-', '/', $row[2]);
$dest_slash_backslash = str_replace(';','\\', $dest_slash);
$replace_root = str_replace($_SERVER['DOCUMENT_ROOT'],'',$dest_slash_backslash);
$row[2] = $replace_root;
$images_paths_with_num[] = array($image_count,$row[2]);
$image_count++;
echo $row[1];
}
这是我正在使用的存储过程:
CREATE DEFINER=`0901972749`@`%` PROCEDURE `GetImage`()
begin
select imageID,imageName,imagePath,imageText
from Images limit 500;
end
答案 0 :(得分:-1)
请参阅此程序(与问题中的相同):
CREATE DEFINER=`0901972749`@`%` PROCEDURE `GetImage`()
begin
select imageID,imageName,imagePath,imageText
from Images limit 500;
end
在这种情况下需要添加一个order by语句" orderID by imageID"因为事情没有以正确的顺序显示。为了确保数据将以正确的顺序显示,我们需要使用order by子句。但是,存储过程可能不是正确的解决方案。抱歉:)
像这样:
CREATE DEFINER=`0901972749`@`%` PROCEDURE `GetImage`()
begin
select imageID,imageName,imagePath,imageText
from Images limit 500 order by imageID;
end