从php中的输入字段向现有表添加列

时间:2013-03-25 12:12:02

标签: php mysql pdo

我使用pdo和mysql并且我已经知道如何将列添加到现有表中,但是当我使用输入字段中的值尝试它时,变量$ ....的名称将被添加为列。
我必须将输入字段中的值添加为列的代码如下:

public function insertAlterTable($colName)
{
    $this->pdo = $this->connectMySql();
    $query = 'ALTER TABLE nbs_events ADD $colName CHAR(5) NULL DEFAULT "nee"';
    $stmt = $this->pdo->prepare($query);
    if(!$stmt->execute()){
        return false;
    }
    $this->pdo = null;
    return true;
}

此代码包含在try catch块中 并且也在课堂内 在首页我使用这样的代码:

insertAlterTable($_POST['colname']);

如何将输入字段colname中的值作为列添加到现有表中 请帮忙。

我已按照以下方式更新了代码,因此适用于我:

public function insertAlterTable($colName)
{ 
    $colName = mysql_real_escape_string($colName);
    $this->pdo = $this->connectMySql();
    $query = "ALTER TABLE nbs_events ADD $colName CHAR(5) NULL DEFAULT \"nee\"";
    $stmt = $this->pdo->prepare($query);
    if(!$stmt->execute()){
        return false;
    }
    $this->pdo = null;
    return true;
}

1 个答案:

答案 0 :(得分:2)

在PHP中,使用单引号时,不会扩展变量。

 $a = "hello";
 $b = "$a dude";               // $b is now "hello dude"
 $c = '$a dude';               // $c is now "$a dude"

使用双引号或字符串连接,你没关系:

 $query = "ALTER TABLE nbs_events ADD $colName CHAR(5) NULL DEFAULT \"nee\"";

“精细手册”中的更多内容:http://php.net/manual/en/language.types.string.php