我使用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;
}
答案 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