MySQLi Abfrage findet nicht vorhandene Datensätze

Hier kann über alles diskutiert werden, wirklich alles. Betonung liegt auf "diskutiert", das ist also kein Freischein zum Spammen.
(Beitragszähler deaktiviert)
Antworten
Benutzeravatar
Piru
Kopolaspinne
Beiträge: 733
Registriert: 28. Okt 2006, 10:49

MySQLi Abfrage findet nicht vorhandene Datensätze

Beitrag von Piru » 5. Aug 2009, 13:08

Hallo,

ich stoße bei einem PHP-Script grade auf ein sonderbares Problem.
Ein Teil des Scripts wurde geschrieben, um einen Datensatz auf seine Existenz zu prüfen, um dann zu entscheiden ob dieser nur durch UPDATE verändert werden soll oder ganz neu angelegt werden soll. Im wesentlichen sieht das bei mir so aus:

Code: Alles auswählen

[...]
$name=$_POST['name'];
$db->query('SELECT * FROM spieler WHERE name='.$name); //Die Abfrage an sich
if($db->affected_rows!=0){
       var_dump ($db);
       echo $name." bereits vorhanden. Update.";
[...]
Das Problem: die Prüfung in der if-clause scheint prinzipiell wahr zu sein, obwohl var_dump folgendes ausgibt:
object(mysqli)#1 (0) { }
Wenn ich mich nicht täusche ist die 0 in den runden Klammern die Anzahl aktuell betroffenen Datensätze.

Ich habe auch schon versucht, die MySQLi-Abfrage direkt prüfen zu lassen, aber auch hier findet er immer Datensätze, die nicht existieren.

LG, Piru

Edit: Ihr könnt im übrigen davon ausgehen, dass die Zugangsdaten zur DB korrekt sind, denn wenn ich die Prüfung weglasse und direkt jeden Datensatz entweder nur mit UPDATE aktualisiere oder durch INSERT neu anlege funktioniert alles wunderprächtig.
Bild

CountZero
Kopolaspinne
Beiträge: 767
Registriert: 24. Okt 2007, 14:10

Re: MySQLi Abfrage findet nicht vorhandene Datensätze

Beitrag von CountZero » 5. Aug 2009, 13:24

Wie sieht denn die DB-Klasse aus wird da ordentlich escaped? Sowie es jetzt aussieht würden ja " oder ' um "$name" fehlen im qry nehme aber mal an das erledigt die Klasse?

Hast du dir die Datensätze mal Anzeigen lassen? Hast du den query einmal direkt in der Konsole (alternativ myAdmin o.ä.) abgesendet und geschaut was rauß kommt?

Benutzeravatar
Piru
Kopolaspinne
Beiträge: 733
Registriert: 28. Okt 2006, 10:49

Re: MySQLi Abfrage findet nicht vorhandene Datensätze

Beitrag von Piru » 5. Aug 2009, 13:33

Bei der Abfrage mit genau diesem Query-String - sowohl in php als auch in der konsole - erhalte ich ja Ergebnisse (wenn ich nach existierenden Datensätzen suche), es scheint also an der Prüfung zu liegen ... :?

Aber ich hab den String jetz mal so umgebaut:
$db->query('SELECT * FROM spieler WHERE name=\''.$name.'\'');
Nun scheint es zu funktionieren. Seltsamer Weise hat es mit diesem String nicht funktioniert, als ich ihn direkt geprüft habe.

Komische Sache ^^°
Bild

Benutzeravatar
gloop
Gelbbart-Yeti
Beiträge: 2377
Registriert: 28. Dez 2003, 00:24
Kontaktdaten:

Re: MySQLi Abfrage findet nicht vorhandene Datensätze

Beitrag von gloop » 5. Aug 2009, 13:38

Texte musste du immer mit "" abfragen. Das einzigste, bei denen du keine "" brauchst sind tabellenspalten, und zahlen!

mfg

Benutzeravatar
Gordian
Zauberer der Bergwiesen
Beiträge: 603
Registriert: 29. Mär 2007, 14:24

Re: MySQLi Abfrage findet nicht vorhandene Datensätze

Beitrag von Gordian » 5. Aug 2009, 15:04

Texte musste du immer mit "" abfragen. Das einzigste, bei denen du keine "" brauchst sind tabellenspalten, und zahlen!
Welt 10 einmal gelogt , nie mehr gestoppt :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 252 Gäste