2017-01-05 52 views
0

我想在MYSQL中通過變量在BBDD中創建一個表。我遇到的問題是代碼不起作用,我不知道爲什麼。創建BBDD @variable表

$variable = "xxx_'".$_POST['idtour']."'_xxxx"; 

    // Create the table 
     $sql = "CREATE TABLE $tourname (
        id_leg VARCHAR(3) NOT NULL COMMENT 'Identificación de la leg del tour, en orden')";   
    //The action 
    mysqli_query($link,$sql) or die("Error ".mysqli_error()); 

我認爲是「_」的問題,任何幫助都會很棒。

回答

0

問題不在於_。這是'"xxx_'".$_POST['idtour']."'_xxxx"將導致xxx_'value'_xxxx作爲可能的表名稱,並且'在表名中無效。如果你必須包含無效字符,那麼你需要使用反引號操作符。

$tablename = "`xxx_'".$var."'_xxxx`"; 

這應該讓你進一步朝着目標邁進。


附註:根據用戶提供的變量創建表是一個壞主意。它可能會讓用戶產生一些奇怪和破壞性的行爲,而且通常通過在現有表中添加一列來更好地實現這一點。你有沒有嘗試添加一列user_idtour

+0

謝謝cwallepoole,現在工作。這是我使用的最終代碼: $ tablename =「'ivao _」。$ nametour。「_ legs'」; $ sql =「CREATE TABLE $ tablename( id_leg VARCHAR(3)NOT NULL COMMENT'Identificaciónde la leg del tour,en orden')」; ($ link,$ sql)或者die(「Error al crear la tabla en la base de datos」.mysqli_error()); 而對於你的問題,我不想在BBDD表中添加另一個文件。我希望變量只能做到這一點。 再次感謝所有,關心 –

相關問題