m.artin: simple Abfrage funktioniert nicht

Hallo,

ich habe heute Neuland betreten und mich mit MySQL beschäftigt.
Ich habe mit phpMyAdmin eine "testdatenbank" mit der Tabelle "tabelle". Nun wollte ich nur eine simple Abfrage schreiben:

<?php
$benutzer= "root";
$passwort= "PW";
$dbname= "testdatenbank";
$link = mysql_connect("localhost", $benutzer, $passwort);
mysql_db_query(SELECT * FROM tabelle );
?>

Nun aber kommt immer folgende Fehlermeldung: Parse error: syntax error, unexpected T_STRING in I:\Server\www\test\index.php on line 15
(15 ist mysql_db_query(SELECT * FROM tabelle );) ich habe bereits gegooglet und gefummelt aber das hat nichts gebracht.

Was habe ich falsch gemacht und wie mache ichs richtig?

Vielen Dank
Martin

  1. $link = mysql_connect("localhost", $benutzer, $passwort);
    mysql_db_query(SELECT * FROM tabelle );
    ?>

    Nun aber kommt immer folgende Fehlermeldung: Parse error: syntax error, unexpected T_STRING in I:\Server\www\test\index.php on line 15

    Ich sag nur: Anführungszeichen.

    1. Ich sag nur: Anführungszeichen.

      das habe ich vergessen dazu zu schreiben: anführungszeichen habe ich schon probiert. dann kommt aber die Meldung: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in I:\Server\www\test\index.php on line 15

      1. Ich sag nur: Anführungszeichen.

        das habe ich vergessen dazu zu schreiben: anführungszeichen habe ich schon probiert. dann kommt aber die Meldung: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in I:\Server\www\test\index.php on line 15

        Die tollen PHP-Fehlermeldungen .. Der SQL-Befehl muss wie alle Texte in Anführungszeichen. Aber wenn du mal in die Anleitung zu mysql_db_query() schaust, wirst du folgende Parameterfolge sehen:

        resource mysql_db_query ( string database, string query [, resource link_identifier] )

        Mit mysql_db_query("SELECT * FROM tabelle"); wird das dann natürlich auch nichts, denn die Funktion möchte mindestens zwei Parameter haben.
        In der Anleitung solltest du allerdings auch lesen, dass von der Benutzung von mysql_db_query() schon seit einer ganzen Weile abgeraten wird, genauer gesagt: seit vor 7 Jahren die Version 4.0.6 rauskam.

        Wie nachfolgend wäre das zum Üben ziemlich korrekt:

        $benutzer= "root";
        $passwort= "PW";
        $dbname= "testdatenbank";

        if (! $link = mysql_connect("localhost", $benutzer, $passwort)) {
            die("Keine Verbindung zum MySQL-Server: " . mysql_error());
        }
        if (! mysql_select_db($dbname, $link)) {
            die("Kann Datenbank " . $dbname . " nicht auswählen: " . mysql_error());
        }
        if (! $r = mysql_query("SELECT * FROM tabelle", $link)) {
            die("Fehler bei SQL-Abfrage: " . mysql_error());
        }
        while ($z = mysql_fetch_assoc($r)) {
            var_dump($z);
        }

        Für den richtigen Einsatz wäre daran noch zu bemängeln, dass a) man nicht mit dem root-Konto arbeitet und b) die Fehlermeldungen in die Seite ausgegeben werden - die Besucher gehen diese Fehlermeldungen aber nichts an, sie gehören mittels error_log() in das Fehlerprotokoll des Servers geschrieben.
        Außerdem werden hier keine weiteren Variablen eingesetzt, solltest du welche benutzen, deren Inhalt von außen kommt (URL-Parameter, HTML-Formulare), gehören sie mittels mysql_real_escape_string() abgesichert.