MYSQL_FETCH_ROW fehler

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /users/img/www/beta/user.php on line 155

Toller Fehler^^ Alles funzt einwandfrei, aber es kommt dieser Fehler.
Wichtiger Code davor genau da und dahinter:

if ($_GET["activate"] != "") { $sql = "SELECT * FROM `activation_codes` WHERE `code` = '".$_GET["activate"]."' LIMIT 1"; $sql = $db->query($sql); $sql_c = $db->num_rows($sql); if ($sql_c != 0) { while ($row = mysql_fetch_row($sql)) { if (time()-$row[3] <= time()-$config["activation_time"]) {

Die Zeile mit mysql_fetch_row ist Zeile 155. Nu sagt mir mal wo der Fehler ist? Weil es funktioniert ja. Er arbeitet mit dem $row^^ undzwar ohne probs XD

Bei SELECT, nimm statt ´ das da: '
Vielleicht funktionierts dann, hat ich auch schon mal ein problem damit

Eigentlich ist das valides SQL, zumindest in MySQL. Soll wahrscheinlich helfen, zwischen Funktionen und Tabellen- bzw Feld-Identifiern zu unterscheiden.

@iNaD: Ersetze mal die dritte Zeile (bzw hundertzweiundfünfzigste Zeile) mit$sql = $db->query($sql) or die($db->error);oder wie immer die getLastError-Routine bei dir heißt - wenn du mysqli verwendest, sollte das so stimmen.

naja das ist mein eigenes $db->query^^
Und das MYSQL ist valide ja
Man muss `` machen bei allen DB, TABELLEN und Feldnamen.
Alles andere ist nicht valide.
Und bei = oder Like etc. muss man ’ ’ machen.
und mein query gibt auch errors zurück.
Aber es funzt ja. Nur die Meldung stört irgendwie. Sonst hab ich die nicht oO

[quote=“iNaD”]Man muss `` machen bei allen DB, TABELLEN und Feldnamen.
Alles andere ist nicht valide.[/quote]
Genau umgekehrt. MySQL ist es übrigens egal, ob du ` benutzt oder nicht, in anderen Datenbanksystemen ist das aber afaik invalides SQL.

Außerdem hat es sicher einen Grund, warum $db->query() false zurückgibt, also lass’ dir den Fehler halt ausgeben…

So hab den Fehler^^
irgendwie mochte er nicht, dass ich bei jeder abfrage $sql benutzt habe. Obwohl ich die dann immer nicht mehr brauchte und sie neu belegt wurde… pingelig^^
Achso und das mit dem table oder was auch immer und = 'VALUE ’ macht selbst phpmyadmin.
und ohne `` kommt es oft zu verwechslungen. z.B. bei feldern namens name oder desc date oder time.
Solche dinge :wink:

Ich bezweifle, dass der Fehler daran lag, aber wenn es jetzt geht, dann is ja gut. :wink:

[quote=“iNaD”]Achso und das mit dem table oder was auch immer und = 'VALUE ’ macht selbst phpmyadmin.
und ohne `` kommt es oft zu verwechslungen. z.B. bei feldern namens name oder desc date oder time.[/quote]
Gegenargument: Die offizielle MySQL-Dokumentation benutzt sie nicht. phpMyAdmin benutzt sie auch nur zur Sicherheit, falls der User seine Felder komisch nennt (z. B. Keywords benutzt). Dass es Verwechslungen vorbeugt, stimmt schon (darum wurde es wahrscheinlich von MySQL eingeführt), aber es ist absolut nicht portabel.

naja ich benutze eh nur mysql. Die anderen DBs laufen ja nicht wirklich bei vielen seriösen hostern :frowning: