【发布时间】:2023-03-31 19:03:01
【问题描述】:
我正在尝试使用 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`
[...]
这可行,但对我来说听起来很奇怪^^'这是解决我问题的唯一方法吗?
【问题讨论】:
-
var_dump($uuid);的输出是什么? -
当您尝试使用 :table 执行版本时会发生什么?
-
@rekire $uuid 包含我用来生成随机 ID 的 uniqid("", true) 的结果
-
@DWright 带有 :table 的版本不起作用。它什么都不做(没有错误)
标签: php mysql pdo create-table