PHP MySQL 创建表

标签 php mysql pdo create-table

我正在尝试使用 PHP、PDO 和 MySQL 创建一个表。 为了我的应用程序的需要,表的名称必须是一个变量。

这是我的代码:

$request = $pdo->prepare("CREATE TABLE IF NOT EXISTS :table (
      `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
      `parent_id` bigint(20) unsigned NOT NULL,
      `position` bigint(20) unsigned NOT NULL,
      `left` bigint(20) unsigned NOT NULL,
      `right` bigint(20) unsigned NOT NULL,
      `level` bigint(20) unsigned NOT NULL,
      `title` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
      `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
      `content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;");
$request->execute(array(
    'table'=>$uuid));

我不能在 MySQL 语句中使用“:table”吗?? 目前我写道:

[...]
CREATE TABLE IF NOT EXISTS `$uuid`
[...]

这可行,但对我来说听起来很奇怪 ^^' 这是我问题的唯一解决方案吗?

最佳答案

您不能将表名作为参数传递。如果要使用变量名创建表,则必须使用动态查询。

关于PHP MySQL 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444039/

相关文章:

php - 未获取 Laravel 外键表 [错误]

php - 如何将一个表中的自动递增 id 链接到另一表中的 id?

mysql - SQL时间范围查询

php - 无法让 mysql_insert_id() 工作

即使我设置了错误处理,PHP 也不会显示 PDO 错误

php - pdo 插入语句使用日期时间错误

php - 如何使用 Prepared Statements 检查是否有结果

php - 如何在不向其他网络服务请求的情况下获取用户的国家?

php - for 在不同表中查找 id 的过程,如果没有该 id 的条目则将其插入

php - 使用另一个文件中的 LESS 类 [Symfony2]