Michael Bieri: Problem mit PHP/MySQL

Hallo

Ich arbeite zurzeit an einem ziemlich seltsamen PHP/MySQL Problem:

Aus folgender Tabelle...:

Database: cht171  Table: users  Rows: 6
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| uname       | varchar(50)  | YES  |     |         |       |
| email       | varchar(100) |      |     |         |       |
| passwort    | varchar(20)  |      |     |         |       |
| myLexikon   | varchar(255) |      |     |         |       |
| myFavorites | varchar(255) |      |     |         |       |
| forumCount  | smallint(6)  |      |     | 0       |       |
| sprache     | varchar(20)  |      |     |         |       |
+-------------+--------------+------+-----+---------+-------+

...soll mit dem folgenden (Test-)Script zugegriffen werden:

<?php
echo "Das PHP-Testfile<br>";
$connectNr=mysql_connect("", "cht171", "[mein Passwort]");
mysql_select_db ("cht171", $connectNr);
echo "$connectNr <br>";
$sessid=1;
$statement="SELECT uname from USER";
$result=mysql_query($statement, $connectNr);
$row=mysql_fetch_row($result);
$num=mysql_num_rows($result);
echo "$row <br>";
echo "$num <br>";
echo "Ende! <br>";
?>

Doch der Server (Bluewin Hostcenter) antwortet mit folgender Fehlermeldung:

Das PHP-Testfile
Resource id #1

Warning: Supplied argument is not a valid MySQL result resource in /u/web/cht171/test.php on line 9

Warning: Supplied argument is not a valid MySQL result resource in /u/web/cht171/test.php on line 10

Ende!

Auf dem Testserver zu Hause (Apache/MySQL =>PHPTriad) funktioniert das ganze einwandfrei.

Warum? Wie bringe ich das ganze zum Laufen?

Gruss

Michael

  1. Database: cht171  Table: users  Rows: 6
    +-------------+--------------+------+-----+---------+-------+
    | Field       | Type         | Null | Key | Default | Extra |
    +-------------+--------------+------+-----+---------+-------+
    | uname       | varchar(50)  | YES  |     |         |       |
    | email       | varchar(100) |      |     |         |       |
    | passwort    | varchar(20)  |      |     |         |       |
    | myLexikon   | varchar(255) |      |     |         |       |
    | myFavorites | varchar(255) |      |     |         |       |
    | forumCount  | smallint(6)  |      |     | 0       |       |
    | sprache     | varchar(20)  |      |     |         |       |
    +-------------+--------------+------+-----+---------+-------+

    $statement="SELECT uname from USER";

    sollte es nicht users heißen????

  2. <?php
    echo "Das PHP-Testfile<br>";
    $connectNr=mysql_connect("", "cht171", "[mein Passwort]");
    mysql_select_db ("cht171", $connectNr);
    echo "$connectNr <br>";
    $sessid=1;
    $statement="SELECT uname from USER";
    $result=mysql_query($statement, $connectNr);
    $row=mysql_fetch_row($result);
    $num=mysql_num_rows($result);
    echo "$row <br>";
    echo "$num <br>";
    echo "Ende! <br>";
    ?>

    Doch der Server (Bluewin Hostcenter) antwortet mit folgender Fehlermeldung:

    Warning: Supplied argument is not a valid MySQL result resource in /u/web/cht171/test.php on line 9

    Warning: Supplied argument is not a valid MySQL result resource in /u/web/cht171/test.php on line 10

    Warum? Wie bringe ich das ganze zum Laufen?

    Den Fehler hat rakkaus Dir ja schon genannt, aber da wärst Du auch selbst drauf gekommen, wenn Du nicht blindlings durch den Code rasen und auf Fehlerprüfungen verzichten würdest.

    Es fehlen hier mindestens zwei: nach mysql_connect() und nach mysql_query(). Woher willst Du zum Beispiel wissen, daß der MySQL-Server ständig zur Verfügung steht?
    Mehr Infos findest Du unter mysql_error() in der PHP-Anleitung: http://www.php.net/manual/de/function.mysql-error.php.

    Gruß,
      soenk.e

  3. Hi,

    Doch der Server (Bluewin Hostcenter) antwortet mit folgender Fehlermeldung:

    [snip]

    Auf dem Testserver zu Hause (Apache/MySQL =>PHPTriad) funktioniert das ganze einwandfrei.

    evtl. könnte die Datenbank auch auf einem anderen Host liegen. Viele Provider trennen aus Performancegründen den Webserver physikalisch vom Datenbankserver. Deshalb kann man bei mysql_connect() auch eine IP-Adresse angeben, auf der der Datenbankserver läuft. Diese Daten sollte allerdings der Provider parat haben. Der Tippfehler, den rakkaus bereits genannt hat, ist allerdings die wahrscheinlichere Fehlerquelle.

    viele Grüsse
    Achim