1
到目前爲止,我得到這個代碼:在MySQL使用PHP一個新的列到現有的表添加與PDO
$column_name = strtolower($_POST['<user input>']);
if(!preg_match('/[^A-Za-z0-9.#\\-$]/', $column_name)){
if(!empty($column_name)){
$st = $db_pdo->prepare("DESCRIBE <table name>");
$st->execute();
$st = $st->fetchAll(PDO::FETCH_COLUMN);
$compare = $st;
foreach($compare as $key){
if($key === $column_name){
die('Project name already exists. Please select a different name.');
}
}
$st = $db_pdo->prepare("ALTER TABLE emails ADD <column name> varchar");
$st->execute();
} else { echo 'Project name is empty.';}
} else { echo 'Project name can only contain letters and numbers.';}
的簡要概述爲:
檢查中列名無效字符。 通過用戶輸入檢查列名是否爲空。 如果表已經存在,則終止頁面。
我對PHP和MySQL非常陌生,如果這些看起來像基本問題,我真的很抱歉。
我想要做的是在類型爲varchar length爲60的表中插入一個新列。就是這樣,不需要其他屬性。
我似乎無法找到合適的解釋如何與Google做到這一點,所以我希望有一些僞代碼與一些解釋。
到目前爲止,我有這樣的:
$st = $db_pdo->prepare("ALTER TABLE emails ADD <column name> varchar");
$st->execute();
而且不知道如何從這個出發。
謝謝。
...我現在感覺很傻。謝謝,它像一個魅力。 –
跟進問題。我已經得到了這段代碼:$ st = $ db_pdo-> prepare(「ALTER TABLE email ADD COLUMN:column_name varchar(60)」); $ st-> bindParam(':column_name',$ column_name); $ st-> execute();但它無法創建一個新列。我在這裏丟失了什麼 –
@ user2997488嘗試在$ column_name.But之後添加PDO :: PARAM_STR,但我不確定你可以使用佔位符表或列名稱.http://stackoverflow.com/questions/13405392/pdo-bindparam-問題 – Mihai