ubuntuusers.de

PHP Daten aus MYSQL Datenbank in Datei schreiben

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

weidenfeld-it

Anmeldungsdatum:
14. April 2024

Beiträge: 8

Hallo zusammen,

ich versuche schon seit einer Weile eine Datenbankausgabe mit PHP in eine Datei umzuleiten. Ziel ist eine .m3u Playliste aus einer Datenbank heraus zu erzeugen.

<?php

$datum = $_GET['datum'];
$pdo = new PDO('mysql:host=localhost;dbname=xxx', 'root', 'xxx');

$sql = "SELECT * FROM xsysdirlesen WHERE SEIT_DAT='$datum'";
foreach ($pdo->query($sql) as $row) {

   echo $row['FILE_LANGNAME'];

}

?>

die Ausgabe funktioniert im Browser einwandfrei. Ich habe schon mit fWrite experimentiert, hat aber alles nicht funktioniert. Vielleicht kann mir von euch jemand helfen, würde mich riesig freuen.

Gruß - Karsten

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 473

Wohnort: Hamburg

Ich persönlich bin der Meinung das du in einem PHP-Forum mit der Frage besser aufgehoben bist, hat ja so nichts mit ubuntu zu tun.

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1074

Benutze bitte Codeblöcke

weidenfeld-it schrieb:

... hat aber alles nicht funktioniert.

Wie lautet der Code der nicht funktioniert hat. Welcher Fehler wurde gemeldet?

Oder Frage ChatGPT der liefert dir:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// Datum aus GET-Parameter abrufen und validieren
$datum = $_GET['datum'];
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $datum)) {
    die('Ungültiges Datum');
}

try {
    // Sichere Verbindung zur Datenbank herstellen
    $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'root', 'xxx');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Sichere SQL-Abfrage mit vorbereiteten Statements
    $sql = "SELECT * FROM xsysdirlesen WHERE SEIT_DAT = :datum";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(['datum' => $datum]);

    // Datei öffnen/schreiben
    $filename = 'ausgabe.txt';
    $fileHandle = fopen($filename, 'w'); // Datei im Schreibmodus öffnen

    // Ergebnisse in Datei schreiben
    foreach ($stmt as $row) {
        $output = $row['FILE_LANGNAME'] . PHP_EOL; // Neue Zeile für jede Ausgabe
        fwrite($fileHandle, $output); // In die Datei schreiben
    }

    // Datei schließen
    fclose($fileHandle);

    echo "Ausgabe wurde in die Datei '$filename' geschrieben.";
} catch (PDOException $e) {
    echo "Fehler bei der Datenbankverbindung: " . $e->getMessage();
}
?>

Code ungetestet und ohne Gewähr. Aber vielleicht hilft dir der Code weiter.

Gruß sh

weidenfeld-it

(Themenstarter)

Anmeldungsdatum:
14. April 2024

Beiträge: 8

@sh4711 Vielen Dank für den Tipp werde ich ausprobieren ☺

Gruß Karsten

Antworten |