【发布时间】:2012-08-19 04:26:01
【问题描述】:
使用 PHP PDO 查询来执行一个 mySQL 查询。查询由从 foreach() 输入的大量信息组成;所以我已经回显了 sql 查询。问题出在这里,但我看不到。
这是$sql的输出
CREATE TABLE IF NOT EXISTS `page` (
`page_ID` INT AUTO_INCREMENT NOT NULL,
`url` varchar(200) NOT NULL,
`title` varchar(200),
`subtitle` TEXT,
`content` TEXT,
`parent` varchar(10),
`privacy` varchar(1),
`status` varchar(1),
`creation` varchar(30)
) CHARACTER SET utf8 COLLATE utf8_general_ci;
仅供参考,查询是这样执行的:
function createdbtable($table,$fields){
global $fsdbh;
$sql = "CREATE TABLE IF NOT EXISTS `$table` (";
foreach($fields as $field => $type){ $sql.= "`$field` $type,"; }
$sql = rtrim($sql,',');
$sql .= ") CHARACTER SET utf8 COLLATE utf8_general_ci"; return $sql;
if($fsdbh->exec($sql) !== false) { return 1; }
}
这是错误:
#1075 - 表定义不正确;只能有一个自动列,并且必须定义为一个键
【问题讨论】:
-
您是否遇到错误...?你检查了吗?
-
预期和实际得到什么?
-
#1075 - 表定义不正确;只能有一个自动列,并且必须定义为一个键
-
列出的问题。 $SQL 已显示
标签: php mysql pdo create-table