Ich habe dieses Skript, um alle Dateien als zip aus der Datenbank herunterladen, aber es wird nur die erste Datei in der Datenbank gespeichert - die anderen nicht angezeigt.PHP-Code zum Komprimieren aller Dateien als zip funktioniert jetzt
Im Folgenden finden Sie eine Liste der Dateien, die ich in der Datenbank, die ich in der Zip enthalten sein soll:
lginin
logersutil.php
lgininh.js
Readme.md
Und mein Code:
<?php
if(isset($_POST['download'])){
try{
$db_conn = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME,DB_USERNAME,DB_PASSWORD);
$db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$post_stmt = $db_conn->prepare("SELECT * FROM jailorgchild WHERE jailchildbasname = :BasNameJa");
$post_stmt->bindParam(':BasNameJa', basename(dirname(__FILE__)));
$post_stmt->execute();
while ($rowss = $post_stmt->fetch(PDO::FETCH_ASSOC)){
$files = array(''.$rowss["jailchillink"].'','codejail.cj');
# create new zip opbject
$zip = new ZipArchive();
# create a temp file & open it
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
# loop through each file
foreach($files as $file){
# download file
$download_file = file_get_contents($file);
#add it to the zip
$zip->addFromString(basename($file),$download_file);
}
# close zip
$zip->close();
# send the file to the browser as a download
header('Content-disposition: attachment; filename='.basename(dirname(__FILE__)).'.zip');
header('Content-type: application/zip');
readfile($tmp_file);
} }catch (PDOException $e){ echo 'Connection failed: ' . $e->getMessage();}
}
?>
erhalte ich diese Fehlermeldung 'Warnung: PDO :: __ construct(): php_network_getaddresses: getaddrinfo failed: No such Host bekannt ist. in C: \ xampp \ htdocs \ www.codejail.com \ cjl \ Code_editor \ index.php in Zeile 375 Verbindung fehlgeschlagen: SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo fehlgeschlagen: Es ist kein solcher Host bekannt. ' – Frank
Danke @Tularis Ihre Antwort hat mir geholfen, aber Sie haben Fehler beim Abrufen der Datei aus der Datenbank – Frank
Sorry, kleiner Tippfehler im Abschnitt db-host; Das ging davon aus, dass Ihr DB-Verbindungscode korrekt ist. Ihre vorgeschlagene Bearbeitung ist genau das, was ich Ihnen zeigen wollte, dass Sie * nicht * tun sollten. Sie müssen den Zipping-Teil aus dem Abschnitt zum Abrufen der Datenbank entfernen. Zuerst alle Informationen erhalten und dann verarbeiten. – Tularis