FALSE wird nur im Fehlerfall zurückgegeben. Steht aber auch im PHP Handbuch.
Fragen zu PDO Klasse
Einklappen
X
-
Zitat von mo78 Beitrag anzeigenWas mich jetzt iwie verwirrt ist das var_dumb mir true ausspuckt.
Sollte execute mir nicht ein False zurückgeben ???
Eine Abfrage, die einfach nur kein Ergebnis liefert, ist nichts desto trotz technisch vollkommen fehlerfrei. Und nicht mehr als das drückt der Rückgabewert von execute aus.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Okay, da ich ja nur prüfen will ob es schon einen eintrag gibt ist wohl exec() die bessere wahl?
Nur da kommt dann schon die nächsten probleme
Hier mal meine erste Abfrage
PHP-Code:$id = 1;
$sql = "SELECT eintrag FROM table WHERE id=".$id;
$check = $pdo->exec($sql);
Column not found: 1054 Unbekanntes Tabellenfeld 1
PHP-Code:// Das funktioniert
$para = array(':plz'=>$_POST['plz'],
':ort'=>$_POST['ort']);
$sql = "INSERT INTO orte (plz,ort) VALUES (:plz, :ort)";
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($para);
//Und das funktioniert nicht
$para = array(':straße'=>$_POST['strasse'],
':hausnummer'=>$_POST['hausnr']);
$sql = "INSERT INTO anschriften (straße, hausnummer) VALUES (:straße, :hausnummer)";
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($para);//in der Zeile kommt die Fehlermeldung
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'
Schonmal besten Dank
mfg
mo
Kommentar
-
So hänge mal wieder bei meinen PDO experimenten fest und komme iwie nicht weiter.
Ich haben folgendes update STatement
PHP-Code:$para = array(':gebID'=>$gebID,
':codeID'=>$codeID,
':selbstID'=>$selbstID,
':emaiID'=>$emailID,
':picID'=>$piclink_id,
':nameID'=>$nameID);
$sql = "UPDATE pa_namen SET geb_id = :gebID,
code_id = :codeID,
selbst_id = :selbstID,
email_id = :emailID,
pic_id = :picID
WHERE id_namen = :nameID";
$this->stmt = $this->pdo->prepare($sql);
$insert = $this->stmt->execute($para);
Code:SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /var/
mfg
mo
Kommentar
-
Bist du ganz sicher, dass die Fehlermeldung zum geposteten Code gehört? Hast du Dateiname und Zeilennummer der Fehlermeldung überprüft?
Tipp: Wenn du statt mit dem Array mit mehreren bindParam-Aufrufen arbeitest, bekommst du im Fehlerfall gleich noch den Parameter heraus, mit dem etwas nicht stimmte.Zuletzt geändert von AmicaNoctis; 15.09.2011, 15:49.[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Kann ich dir inzwischen sagen – ich hab's auch erst jetzt entdeckt. Du hast [FONT="Courier New"]emaiID[/FONT] statt [FONT="Courier New"]emai[COLOR="Red"]l[/COLOR]ID[/FONT] geschrieben. Solche Tippfehler erkennt man i. d. R. mit bindParam schneller, weil er dann gleich eine Zeilennummer zum Meckern hat und nicht erst auf execute warten muss.Zuletzt geändert von AmicaNoctis; 15.09.2011, 16:39.[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Das ist vom Anwendungsfall und z. T. auch vom Geschmack abhängig. Wenn es um Stored Procedures geht, ist bindParam klar im Vorteil, weil es auch out- und inout-Parameter unterstützt, für Select-, Insert-, Update- und Delete-Statements ist es aber im Grunde egal. Ich nutze immer bindParam.[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
Kommentar