2014-02-07 43 views
0

我想補充教師表中的列工作列的名稱由文本字段中給出的代碼是在這裏與MySQL和PHP

$name= cleanString($_POST['prog']); 
$query_1="alter table teacher add '$name' varchar(40) null"; 
if (!mysql_query($query_1, $link)){ 
    echo mysql_error(); 
} 

但它給像 錯誤「你有一個錯誤的SQL語法;請查看對應於你的MySQL服務器版本使用附近的'學生的varchar(40)空」位於第1" 行

,但正確的語法手冊當我使用查詢 $ QUERY_1 =「alter table program_course add'students'varchar(40)null」;

此查詢工作正常,沒有錯誤的任何身體誰可以幫我一下吧,請

+3

**危險**:您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068)並且應該使用[現代替換](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也可能會受到[SQL注入攻擊](http://bobby-tables.com/)**(一個叫做'cleanString'的函數聽起來足夠通用以至於可能有問題)「)現代的API會讓你更容易[防守](http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)。 – Quentin

+3

請勿在老師桌上添加課程。創建一個課程表並給它一個教學專欄。 – Quentin

+0

您確定查詢的運行正確嗎?我不認爲該列會添加它作爲一個字符串?嘗試刪除var的單引號? – d1ll1nger

回答

0

嘗試:

$query_1="alter table teacher add `$name` varchar(40) null"; 

相反的:

$query_1="alter table teacher add '$name' varchar(40) null"; 

您使用無效字符。您需要`而不是'

+0

的編碼名稱您是否需要在變量周圍{}? '{$ name}' – Hammerstein

+0

@Hammerstein它是可選的 –

+0

thanx親愛的Bogdan Burim這是工作 –