phpbar.de logo

Mailinglisten-Archive

[php] Zugriff auf mysql db

[php] Zugriff auf mysql db

Stefan Engelhardt Stefan.Engelhardt_(at)_stud.fh-hannover.de
Mon, 29 May 2000 12:39:21 +0200


> ich habe folgendes Problem:
>
> das Script
>
> --------
> <html>
> <head><title>Test</title>
> </head>
> <body>
>
> <?php
>
> $link = mysql_connect("127.0.0.1","gb_user","");
> $query = "use guestbook";
> if (!mysql_query($query,$link))
>    echo "Datenbank existiert nicht/Zugriff verweigert";
> if (mysql_query($query,$link))
> {
>    $query = "SELECT name FROM eintraege WHERE id=1";
>    $link = mysql_connect("127.0.0.1","gb_user","");
>    $name = mysql_query($query,$link);
>    echo "$name";
> }
>
> ?>
>
> </body>
> </html>
> --------
>
> liefert mir nicht den Eintrag des Feldes "name" in der
> Reihe, in der "id" "1" ist, sondern gibt immer "2" aus! Mit
> der Datenbank und der Tabelle ist soweit alles in Ordnung. Wer
> kann mir helfen?
Hallo Björn,
also irgendwie sieht mir das ein bißchen komisch aus: Warum connectest
Du denn innerhalb Deiner If-Abfrage ein zweites Mal zu Deiner DB? Das
ist schon mal haarig, ich weiß nicht, wie PHP das verarbeitet. Auf jeden
Fall ist es überflüssig!

Sauberer wäre meiner Meinung nach folgendes:

$link=mysql_connect("127.0.0.1","gb_user","") or die("Datenbank-Server
nicht verfügbar");
$query=mysql_select_db("guestbook") or die("Datenbank existiert nicht");
$query="SELECT name FROM eintraege WHERE id=1";
$name=mysql_query($query); // Link ist bei nur einer verwendeten DB
nicht notwendig
$datensatz=mysql_fetch_row($name);
echo $datensatz[0];

Du bekommst nämlich bei der Abfrage erst einmal nur einen Link und nicht
sofort die Daten zurückgeliefert. Erst mit mysql_fetch_row() werden die
Daten in ein Array übergeben, welches Du dann ausgeben kannst.

Gruß
Stefan



php::bar PHP Wiki   -   Listenarchive