PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

08-09-2011, 15:51
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.611
|
|
FALSE wird nur im Fehlerfall zurückgegeben. Steht aber auch im PHP Handbuch.
|

08-09-2011, 15:53
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Zitat von mo78
Was mich jetzt iwie verwirrt ist das var_dumb mir true ausspuckt.
Sollte execute mir nicht ein False zurückgeben ??? 
|
Nein, sollte es natürlich nicht.
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.
|

08-09-2011, 17:25
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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);
Hier bekomme ich immer den Fehler
Zitat:
Column not found: 1054 Unbekanntes Tabellenfeld 1
|
So und das ist die 2. Abfrage
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
Die 2. Fehlermeldung
Zitat:
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined'
|
Hmm und iwie komme ich da überhaupt garnicht mehr weiter.
Schonmal besten Dank
mfg
mo
|

08-09-2011, 17:28
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.611
|
|
Sonderzeichen in Spaltennamen solltest du am besten gleich mal ganz sein lassen. Das bringt auf lange Sicht nur Ärger.
|

08-09-2011, 17:58
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Alles klar sonderzeichen sind gestrichen 
und die 2 Abfrage funzt dann auch.
besten Danke
mfg
mo
|

15-09-2011, 16:39
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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);
und bekomme immer für die letzt Zeile folgende Fehlermeldung
Code:
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /var/
schonmal besten Dank
mfg
mo
|

15-09-2011, 16:47
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.709
|
|
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.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (15-09-2011 um 16:49 Uhr)
|

15-09-2011, 16:58
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Also die Zeile zur Fehlermeldung ist die Richtige, aber werd das mal mit binds probieren und dann nochmal meldung machen
|

15-09-2011, 17:23
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
So also mit bind Parameters funktioniert das ganze, jetzt würd mich natürlich noch interesieren warum.
|

15-09-2011, 17:36
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.709
|
|
Kann ich dir inzwischen sagen – ich hab's auch erst jetzt entdeckt. Du hast emaiID statt emailID 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.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (15-09-2011 um 17:39 Uhr)
|

15-09-2011, 17:48
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Oh man böse Falle l u. I 
welcher variante ist denn vorzuziehen array oder bindparam?
|

15-09-2011, 18:35
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.709
|
|
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.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|