Sprungnavigation: Startseite [Mac:ctrl+alt+0] Navigation [Mac:ctrl+alt+1] Inhalt [Mac:ctrl+alt+2] Kontakt [Mac:ctrl+alt+3] Sitemap [Mac:ctrl+alt+4]

Individuelle und interaktive Websites in Rüti ZH and all over the world.

PDO

+/-

Datenbankabfragen MySQL Code-Creator für PDO

Ausgangslage

Mit MySQL und phpMyAdmin bin ich vertraut. Meine interaktiven Webseiten bestehen aus dutzenden von Datenbankverbindungen. Nun kommt PDO. Wie kriege ich jetzt alle meine...[mehr]

Abfragen schnell und zuverlässig umgeschrieben? Ich bin mir nach dem Durchackern mehrerer Tutorials bewusst, dass es auch andere Abfragemöglichkeiten gibt. Mein entwickelter Code-Creator wählt nur die prepared-statements und spart viel Schreibarbeit und "denkt" an manche Details. Nach Auswahl der Abfrageart werden die erforderlichen Felder eingeblendet. Weiter ausfüllen und der Code wird nach anklicken des "Code erzeugen"s-Buttons anklickbar für copy-Zwecke geschrieben. Ich bin kein Experte - ich habe nur schon viel und gerne Code entwickelt und bis jetzt scheint es zu funktionieren. Ich habe auch nicht für jede mögliche Falscheingabe eine Meldung geschrieben.


Abfrageart

   alles zurücksetzen

Tabellenname

Spaltennamen

Spaltennamen kommasepariert eingeben. Ev. ID-Name zuerst. Z.B.: adr_id,vorname,nachname etc. Im Code-Generator gehe ich davon aus, dass die Variablen den Spaltennamen entsprechen. [* => alles]

spotlight

scheinwerfer symbol für spotlight
+/-


Datenbankverbindung herstellen

Quelle

<?php
$dsn 
'mysql:dbname=testdb;host=127.0.0.1';
$user 'dbuser';
$password 'dbpass';
try {
    
$dbh = new PDO($dsn$user$password);
    
$dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
} catch (
PDOException $e) {
    echo 
'Verbindung fehlgeschlagen: ' $e->getMessage();
}
?>


Datenbankverbindung beenden

<?php
// Datenbankverbindung beenden
$dbh        null;
$eintrag    null;
$auswahl    null;
$abheute    null;
$killme     null;
?>


Benamsungen

Die PDO-Verbindung nenne ich $dbh - d aten b ank h andler. Andere nennen es $pdo.

INSERT wird zu $eintrag

SELECT wird zu $auswahl

UPDATE wird zu $abheute

DELETE wird zu $killme (Löschen hat dummerweise einen Umlaut.)

Andere nennen es immer $statement oder $stmt.



Quellen

php-einfach.de

phpdelusions

thedevfiles

php.net

kushellig.de


Ersatz für

<?php if (FALSE !== mysql_query($abfrage)) ?> 1

Lösung

<?php
$eintrag 
$dbh->prepare("INSERT INTO ".ERTRAG_AUFWENDUGEN." (jahr) VALUES (:jahr)"); 
if (
FALSE !== $eintrag->execute(array("jahr" => ($st_jahr_pre))))
            {
                
$meldung "Der neue Eintrag wurde erfasst";
                
$jahr_id $dbh->lastInsertId();
            }
            else
            {
                
$meldung "<span class="red">Der neue Eintrag wurde nicht erfasst</span>";
            }

?>
1