使用带有PDO的PHP向MySql中的现有表添加一个新列
到目前为止,我得到了以下代码:使用带有PDO的PHP向MySql中的现有表添加一个新列,php,mysql,pdo,Php,Mysql,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
$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();
我不知道该怎么做
多谢各位
ALTER TABLE emails ADD <column name> varchar(60)
你必须指定长度…我现在觉得很傻。谢谢,效果很好。接下来的问题。我现在有了这个代码:$st=$db_pdo->prepareALTER TABLE email ADD COLUMN:COLUMN_name varchar60$st->bindParam':column\u name',$column\u name$st->execute;但它无法创建新列。我错过了什么here@user2997488尝试在$column_name之后添加PDO::PARAM_STR。但我不确定您是否可以为表或列名使用占位符。不,不起作用:致命错误:调用未定义的函数name=>name只是从$column POST[]中获取的随机值