MySQL: was passt nicht?

C

carom

Gast
Hallo!

Baue mittels mysqli erfolgreich eine Verbindung auf und führe dann folgendes aus:

PHP:
$sql = sprintf("SELECT id FROM users WHERE email = '%s' and password = '%s'", $mail, $passwd);
$result = $db->query($sql);
echo $result->num_rows;


Num rows spuckt aber garnichts aus, nicht mal 0. Fehlermeldung kommt aber keine.
$result->close() geht danach auch nicht wegen non-Objekt, ohne es getestet zu haben ist result vermutlich null.

Warum? Ist der Query etwa falsch?



Danke
 
Guck dir mal die Variablen an. Du fragst alle Daten ab, wo Passwort und email gleich sind. Und das sind vermutlich keine.
 
Ist mir fast peinlich, aber ich stehe gerade voll auf dem Schlauch.

Ist ja völlig ok wenn es keine passenden Daten gibt, aber warum ist num_rows dann nicht 0?
 
Ich kann mich Naimless da nicht anschließen.

Der sprintf Befehl und die SQL Abfrage ist erstmal richtig.

Wenn $result ein non-object ist, funktioniert etwas mit dem query nicht richtig.

Entweder hast du keine Verbindung zur Datenbank <- was du ja schon verneint hast.
Prüf nochmal ob der angemeldete user SELECT-Rechte auf der Datenbank und der Tabelle hat.
 
Danke schonmal.

Höchst seltsamer Fehler. Wenn ich zusätzlich die notices ausgeben lasse kommt folgendes:

Notice: Trying to get property of non-object in /www/htdocs/w00c42bc/test/get3.php on line 75 (das ist die numrows stelle)

Notice: Unknown: SECURITY PROBLEM: insecure server advertised AUTH=PLAIN (errflg=1) in Unknown on line 0

Wie kann ich das mit den Rechten am einfachsten prüfen? Bin etwas verwundert darüber, da ich früher mit dem selben Webspace ebenfalls mit MySQL gearbeitet habe.

edit: die insecure server notive ist zu vernachlässigen - die kommt nicht von mysqli, sondern von imap, andere Geschichte im code.
 
Zuletzt bearbeitet:
Ein einfaches "SELECT * FROM users" sollte bei vorhandenen Rechten den kompletten Inhalt der Tabelle liefern.
 
Setz mal ein "echo $db->errno;" oder "echo $db->error;" nach der Query und vor der num_rows-Zeile ein.

Kommt da ein Fehlercode oder eine Fehlermeldung?
 
Vielen Dank für $db->error, wenn man fast nie mit PHP arbeitet sind solche Tipps goldwert.

Naja, der Fehler ansich war wieder mal einer der dümmsten Fehler überhaupt. Es lag an den Zugangsdaten, aber nicht so wie ihr jetzt denkt. Die Daten an sich waren schon gültig, denn die Verbindung kam ja auch zu stande. Bloß waren es die Daten für die falsche DB -.-

Danke nochmal an alle
 

Ähnliche Themen

Zurück
Oben