fastix®: csv - Dateihandhabung

Beitrag lesen

Moin!

Ich habe auch noch keinen wirklichen Vorteil der Schnittstelle zu MySQL begriffen.

Mach es  einfach mal. Wenn Du dann begriffen hast, dass es jeweils nur wenige Zeilen für

  • den Zugriff (connect) auf die Datenbank
  • die Abfrage
  • die Auswertung der Rückgaben

braucht und dass sich insbesondere der Connect in ein zu inkludierendes Skript auslagern lässt und Du dann nur noch die Punkte Formulierung der Abfrage (Löschen/Update) und Auswertung der Rückfrage zu leisten hast dann wirst Du nach einigen Gehversuchen mit MySQL (oder einer anderen Datenbank/einem anderen DBMS) merken, dass dies echt "endgeil" ist. Das ganze CSV-Geraschel wirst Du dann bestenfalls noch via DBD:CSV machen wollen, was Matti Maekitalo dir vorgeschlagen hatte.

Mein Beispiel z.B. wäre mit einem

SELECT  
`Vertraege`.`Beginn`  
`Vertraege`.`Ende`  
`Vertragstypen`.`Name`  
  
FROM `Kunden`, `Vertraege`, `Vertragstypen`  
  
WHERE  
   `Kunden`.`Vorname`='Franz'  
    AND `Kunden`.`Ort` LIKE '%Musterstadt%'  
    AND `Vertraege`.`Kunde`= `Kunden`.`Kundennummer`  
    AND `Vertragstypen`.`ID`= `Vertraege`.`Typ`  
  
ORDER BY  `Vertraege`.`Beginn`;

erledigt, welches in einen String gepackt der Datenbank "vor den Kopf geknallt" wird:

$table_data = $dbh->prepare($sql);  
$table_data->execute;

und in einem hübsch auszulesenden Objekt resultiert. Das ist doch leicht.

Ein Vertrag ist beendet?

Einfach

UPDATE VertraegeSETEnde= '2010-08-11' WHERE Vertraege.Id=1 AND Kunde='K0815' LIMIT 1;

in einen String packen und der Datenbank "vor den Kopf knallen", also schon wieder:

$table_data = $dbh->prepare($sql);  
$table_data->execute;

Auswerten ob die abgefassten Zeilen in Ihrer Anzahl der Erwartung entsprechen. Bingo!

Ich finde: Einfacher geht es kaum, vor allem wenn ich das mit dem Theater mit dem CSV-Dateien vergleiche, welches vor allem dann auftritt, wenn ich jetzt noch auf DBD::CSV verzichte... und alles vom Öffnen, dem Packen in Arrays, der Auswertung, dem Bauen eines neuen Arrays, dem Zurückschreiben vergleiche. Die Fehlerquellen, die Du Dir damit schaffst sind erst recht nicht zu vernachlässigen. Vielleicht hast Du genau das bisher getan: Prüfst Du denn überhaupt, ob Deine Datei

1. vorhanden ist?
2. schreibbar ist?
3. überhaupt die erwartete Zahl an Spalten?
4. geschweige denn die erwarteten Datentypen enthält?
5. ob Du den richtigen Datentyp in die Spalte x schreibst?
6. erfolgreich geschrieben wurde?

Kümmerst Du Dich um locks?

Dagegen ist die Verwindung einer Datenbank echt einfach.

fastix