Tim: mysql_num_rows geht nicht mehr?

Hallo,

ich hab eine Reihe von Scripten geschrieben, die auch bisher alle fehlerfrei laufen.
Jetzt hab ich mein Mysql und mein PHP aktualisiert und jetzt läuft plötzlich der num_rows-Befehl nicht mehr?

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

Der Quellcode sah ganz am Anfang so aus:

$verbindung = @mysql_connect($server,$login,$pass);
$passwort = md5($passwort);
$abfrage = "select * from shop_user where loginname='$username' AND passwort='$passwort'";
$erg = mysql_db_query($dbname,$abfrage,$verbindung);
$anz = mysql_num_rows($erg);
if ($anz > 0) {
$row = mysql_fetch_array($erg);
extract($row);
mysql_close($verbindung);
}

Nachdem ich dann festgestellt habe, dass der Abfrage-Befehl nicht mehr verwendet werden soll und ab 4.0.x veraltet sei, habe ich das Script wie folgt umgestellt, allderdings mit dem gleichen Ergebnis:

$verbindung = @mysql_connect($server,$login,$pass);
mysql_select_db ($dbname,$verbindung);
$passwort = md5($passwort);
$abfrage = "select * from shop_user where loginname='$username' AND passwort='$passwort'";
$erg = mysql_query($abfrage);
$anz = mysql_num_rows($erg);
if ($anz > 0) {
$row = mysql_fetch_array($erg);
extract($row);
mysql_close($verbindung);
}

Hat da einer eine Erklärung für??

Heisse sommerliche Grüße,

Tim

  1. echo $begrüßung;

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

    Das ist ein Folgefehler.

    $verbindung = @mysql_connect($server,$login,$pass);

    ...

    $erg = mysql_db_query($dbname,$abfrage,$verbindung);

    Frage nach MySQL-Befehlen die MySQL-Fehlermeldungen mit mysql_error() ab.

    echo "$verabschiedung $name";

    1. Hi,

      Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

      Das ist ein Folgefehler.

      Hmm, bin ich mir nicht so sicher,
      wenn ich mir Abfrage anzeigen lasse (echo $abfrage;)
      Und die Abfrage mit dem phpmyadmin validiere, gibts ein korrektes und das erwartete Ergebnis.

      Wenn ich die num_rows-Abfrage weglasse und davon ausgehe, das Ergebnis ist korrekt:

      $abfrage = "select * from dcuser where loginname='$username' AND passwort='$passwort'";
      echo "$abfrage<br>";
      $erg = mysql_query($abfrage);
      //$anz = mysql_num_rows($erg);
      $anz = 1;
      if ($anz > 0) {
      $row = mysql_fetch_array($erg);
      extract($row);
      echo "Juhuu: $loginname, $passwort<br>";
      }

      Dann wird komischerweise loginname und passwort nicht angezeigt aber auch kein weiterer Fehler ??

      Ich scheine auf dem Schlauch zu stehen, dabei könnte ich Wasser gut gebrauchen...

      Tim

      1. echo $begrüßung;

        Ich scheine auf dem Schlauch zu stehen, dabei könnte ich Wasser gut gebrauchen...

        Ich kann mich nur wiederholen: Frage bitte die MySQL-Fehlermeldungen nach dem Connect-Befehl mit mysql_error() ab.

        Generell ist es sinnvoll, nach einem MySQL-Befehl (und nicht nur da) auch auszuwerten ob der geklappt hat und nicht einfach weiter im Text zu gehen. Beispielsweise gibt mysql_connect() bei nicht erfolgreichem Verbindungsaufbau ein false zurück, das du auswerten solltest. Das gleiche gilt für mysql_query().

        echo "$verabschiedung $name";