【发布时间】:2026-01-31 09:15:01
【问题描述】:
我有一个用于保存文章的数据库。不幸的是,无论出于何种原因,他们将图片信息存储在数据库中的 BLOB 中。现在我需要创建包含图片数据的文件夹 - 这很好,但是当我尝试选择更多的数据时,脚本失败或遇到错误(返回错误)。您能以某种方式帮助我查询 16.000-20.000 行并将其提取到文件中吗?
这是我的代码
<?php
$dbuser = 'user';
$dbpass = 'pass';
try {
$db = $dbh = new PDO('mysql:host=localhost;dbname=Tventas', $dbuser, $dbpass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::NULL_EMPTY_STRING);
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\
";
}
try {
$sql="SELECT id_imagen, imagen FROM imagen900";
//$stmt = $db->prepare($sql);
//$stmt->execute();
//$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($db->query($sql) as $row){
$filename = $row['id_imagen'].".jpg";
if (!empty($row['imagen'])) {
$blob=$row['imagen'];
if (file_exists($filename)){
echo "<pre>Datei bereits vorhanden: ";
print_r($filename);
echo "</pre>";
}
else
{
file_put_contents($filename,$blob);
echo "<pre>";
print_r($filename);
echo "</pre>";
}
}
}
}
catch (PDOException $e) {
echo"Whoops! Something went wrong!";
echo" Query with error: ".$sql;
echo" Reason given:".$e->getMessage()."\
";
return false;
}
?>
【问题讨论】:
-
这里有一个很好的解决方案*.com/questions/4646533/…
-
您应该在分段中进行查询,即先执行 0-200 行,然后执行 200-400 行。
标签: php mysql rows multiple-columns