simple Abfrage funktioniert nicht
m.artin
- datenbank
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
$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.
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
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.