php - 将列添加到表会返回错误,指出 SQL 语法错误

标签 php mysql sql pdo

当我运行此代码时:

$addUniverseColumn = $db->prepare("ALTER TABLE spaceships ADD :universe int");
$addUniverseColumn->bindParam(":universe", $name);
$addUniverseColumn->execute();

我收到以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''asfa' int' at line 1' in D:\XAMPP\htdocs\php\locationconfig.php:63 Stack trace: #0 D:\XAMPP\htdocs\php\locationconfig.php(63): PDOStatement->execute() #1 {main} thrown in D:\XAMPP\htdocs\php\locationconfig.php on line 63

注意:$addUniverseColumn->execute(); 是第 63 行。

我几乎不知道问题是什么。我一直在寻找问题的答案,但我找不到任何东西。任何帮助,将不胜感激。 :)

最佳答案

占位符只能用于值,不能用于字段/表名称。您不能在 ALTER 查询中使用占位符作为字段名称。您必须使用良好的旧字符串插值:

$db->prepare("ALTER TABLE spaceships ADD $name int");

关于php - 将列添加到表会返回错误,指出 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21856803/

相关文章:

java - 在 SQL 语句中实现动态变量时,是否有比字符串连接更好的方法

带有空字符串的 PHP strcasecmp 等于 true?

javascript - 导出 1 和导出多个为 .csv (laravel 5.3)

javascript - 删除 HTML 标签并考虑文本区域中的换行符

mysql - 如何在 MySQL 中创建矢量类型的字段?

mysql - 如何计算两个查询之间的百分比?

php - 如何连接具有多个公共(public)字段的两个表以进行搜索过滤器

javascript - Angular JS 和 Symfony2

php - 在 Opencart 的数据选项卡中添加自定义图像字段

mysql - 子字符串仅返回查询字符串+10个字符