【发布时间】:2026-02-10 02:35:01
【问题描述】:
似乎这个 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
【问题讨论】:
-
数据库中有订单吗?您可以使用“按 imageID 排序”确保记录按您希望的方式显示,以确保它们按照您希望的正确顺序显示。
-
您能否通过硬编码查询获取第一行?
-
我不得不提到它可以在工作台中调用 GetImage() 并且一切都按预期显示,所以问题可能出在 php 代码上。
-
抱歉,我的代码没有任何问题。 Ricardo Ortega Magana 提供了解决方案。谢谢。
-
我不确定您为什么要为此使用存储过程。这是非常不灵活的,并且该过程中没有任何内容无法通过具有完全相同内容的查询来复制。