使用PHP和PDO将新列添加到MySql中的现有表

时间:2013-11-15 20:25:57

标签: 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 = $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长度为60的表中。就是这样,不需要其他属性。

我似乎无法找到关于如何使用Google执行此操作的相应说明,因此我希望对某些伪代码进行一些解释。

到目前为止,我已经得到了这个:

$st = $db_pdo->prepare("ALTER TABLE emails ADD <column name> varchar");
$st->execute();

并且不知道该怎么做。

谢谢。

1 个答案:

答案 0 :(得分:2)

ALTER TABLE emails ADD <column name> varchar(60)

您必须指定长度