2012-03-23 4 views
-1

Ich bin mit einem Problem konfrontiert, das mich verrückt macht. Ich verstehe es wirklich nicht. Hier unten eine sehr einfache Tabellenerstellung. Ich möchte eine Variable verwenden, um die Tabelle zu benennen. Und es funktioniert nicht !!!!! Wenn ich die Variable durch einen "handschriftlichen" Namen ersetze, funktioniert es ... Was die .... Vielen Dank im Voraus für Ihre Antworten. Prost. Marc. Falls ich es nicht erwähnt habe, macht es mich verrückt.PHP MySql Tabellenerstellung - So einfach, aber nicht funktioniert. WARUM?

$processid = mysql_thread_id(); 

mysql_select_db("mydb", $con); 
$sql = 'CREATE TABLE '.$processid.' 
(
bat_file varchar(255), 
bat_file_date datetime, 
bat_file_misc varchar(255), 
bat_titre varchar(255), 
bat_lien varchar(255) 
)'; 

mysql_query($sql,$con); 
+1

wo ist 'mysql_connect'? –

+0

Ich habe nicht den ganzen Code eingegeben. Wie gesagt, wenn ich die Variable durch einen Handschristennamen ersetze, funktioniert es .... – Marc

+0

Sie machen keine Fehlerüberprüfung nach Ihrer Abfrage, so dass die Abfrage im Fall von Problemen unbemerkt fehlschlagen würde. Das Handbuch zu mysql_query() 'zeigt, wie man nach Fehlern sucht. Und wenn es nicht mit '$ processid' arbeitet, aber mit einem manuell eingegebenen Namen arbeitet, würde nicht zuerst nach dem Wert gesucht, den es hat? –

Antwort

2

Der Rückgabewert von mysql_thread_id ist kein valid name for a table, wenn Sie es zitieren:

Bestimmte Objekte innerhalb MySQL, einschließlich Datenbank-, Tabellen-, Index-, Spalte, alias, Ansicht, gespeicherte Prozedur, partition und andere Objekte Namen sind als Bezeichner bekannt.

... 

Identifiers kann mit einer Ziffer beginnen, aber es sei denn, nicht ausschließlich aus Ziffern bestehen zitiert kann.

Da die Anführungszeichen der Graviszeichen ist, sollte es funktionieren, wenn Sie es

$sql = 'CREATE TABLE `'.$processid.'` ... '; 

Ich weiß nicht, warum Sie eine Tabelle, nachdem ein klingt wirklich mysql_thread_id (es benannt erstellen möchten ändern fischig), aber selbst wenn es einen vollkommen guten Grund gibt, ist es vielleicht eine gute Idee, ein Präfix hinzuzufügen, so dass Sie nicht haben, um es jedes Mal zu zitieren.

+0

Hallo Jon. Danke, dass du versucht hast zu helfen. Das Seltsame ist, dass wenn ich eine Tabelle manuell nur aus Ziffern erstelle, die Tabelle richtig erstellt wird ... – Marc

+0

@Marc: Ich weiß nicht, warum das funktionieren würde, wie auf der Oberfläche sollte es immer nicht erlaubt sein. Haben Sie versucht anzugeben, ob das Problem behoben wurde? – Jon

+0

Arbeiten wie ein Charme :) Vielen Dank Jon, du rockst !! – Marc

Verwandte Themen