使用带有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[]中获取的随机值