Variablen in mySQL Abfrage

MatMagic

Erfahrenes Mitglied
Moin Community,

ich möchte die Columns der Tabelle einer mySQL Datenbank auslesen.
Wenn ich die Namen der DB und der Tabelle in die Abfrage eintrage funktioniert das auch:

DB = db471659069
Tabel = termine1

$result = mysql_query("SHOW COLUMNS FROM db471659069.termine1");

Sobald ich aber die Variablen verwende bekomme ich einen mySQL Error der mir nicht zur Lösung verhilft.

DB = db471659069 = $db_name
Tabel = termine1 = $table_name

$result = mysql_query("SHOW COLUMNS FROM $db_name.$table_name");

Fehlermeldung: "MySQL-Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
' at line 1"


Was mache ich falsch? Könnt ihr mir bitte helfen? :(
 
Hallo Cappaja,
danke für die schnelle Antwort - aber ich möchte nicht den Inhalt ausgeben sondern die Columns auflisten und dafür eben die Variablen nutzen.
 
Falls du auf deinen Weg mit SHOW nicht verzichten musst versuch mal noch folgendes:

Code:
SHOW COLUMNS FROM '$mytable' FROM '$mydb';

Also Hochkommata um die Variablennamen und am besten trennen. Ich weiß nicht ob das beim Punktoperator funktioniert...

Grüße
 
@Cappaja
$res = mysql_query('select * from termine1');
echo mysql_field_name($res, 0);


Da bekomme ich die Fehlermeldung: No Database selcted

acuh beim Nutzen der Variable "$table_name"

@Sheel
Die Variablen haben den richtigen Inhalt - liegt es vielleicht daran das die Vars "escaped" werden müssen? Ich weiss nur nicht wie.

@Cappaja2

Hiermit: $result = mysql_query("SHOW COLUMNS FROM '$table_name' FROM '$db_name'");

bekomme ich diesen Fehler:

MySQL-Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''termine1
' FROM 'db471659069'' at line 1
 
Zuletzt bearbeitet:
$db_name = $_POST['db_name'];
$table_name = $_POST['mnu_table_select'];
$verbindung = mysql_connect ($host_name, $user_name, $pw)
or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");

$result = mysql_query("SHOW COLUMNS FROM $db_name.$table_name");
 
ach jetzt, du musst als zweiten parameter natürlich das Datenbankhandle mitgeben.

also

Code:
mysql_select_db("$db_name", $verbindung);
mysql_query("SHOW COLUMNS FROM '$table_name' FROM '$db_name'", $verbindung);

Allein aus diesem Grunde bevorzuge ich die mysqli Klasse...
 
Zurück