我想使用下面的代碼添加一列到表中。它不讓我通過變量($ document_type)插入列名。PHP的mysqli不通過變量添加列(ALTER TABLE)
$document_type=$_POST['document_type'];
$category=$_POST['category'];
$file_extension=$_POST['file_extension'];
// Database Insert
$sql_link = Connect_MySQLi_DB();
$stmt1 = $sql_link->prepare("INSERT INTO document_type (document_type,category,file_extension) VALUES (?,?,?)");
$stmt1->bind_param('sss',$document_type,$category,$file_extension);
if($stmt1->execute()){
//Problem Here
$sql_link->query("ALTER TABLE hr_types ADD $document_type VARCHAR(255) NULL");
}
如果我靜態鍵入列名稱,它將起作用。但隨着變量,注意到,它甚至不會引發錯誤。任何想法發生了什麼?
變量正確傳遞。這很奇怪,由於某種原因,Yash Sodha的答案奏效了。誰能解釋一下? – 2014-10-08 11:01:52
這是反引號。我只是使用反斜槓包裝'hr_types'和'$ document_type',並開始像魔術一樣工作。它實際上沒有{..}。我認爲這裏涉及到mysql保留的關鍵字。 – 2014-10-08 11:11:40
它是變量數據中的空格! – 2014-10-08 11:35:09