我正在尝试使用php创建一个以上的MySQL表,但是它会产生错误,并且我无法找出它的错误所在。
PHP代码:
$sql = ' CREATE TABLE IF NOT EXISTS `mod_reminder_entries`
(
`id` INT(10) NOT NULL auto_increment,
`user_id` INT(10) NOT NULL,
`entry_name` VARCHAR(255) NOT NULL,
`entry_value` INT(10) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`)
);
CREATE TABLE IF NOT EXISTS `second_table`
(
`user_id` INT(10) NOT NULL,
`fieldstotal` INT(10) NOT NULL,
FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`)
); ';
mysql_query($sql);它给出了错误,此外,不要担心mysql连接。我正确地连接了DB,并对它进行了测试,语法肯定有问题。
您的SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得在“创建表(如果不存在的话)”附近使用的正确语法
second_table(user_idINT )。
发布于 2012-12-24 16:48:26
您不能在mysql_query中使用分号分隔查询,此函数一次只允许一个查询!
您必须单独执行您的语句:
mysql_query("
CREATE TABLE IF NOT EXISTS `mod_reminder_entries` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`user_id` INT(10) NOT NULL,
`entry_name` VARCHAR(255) NOT NULL,
`entry_value` INT(10) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`)
)
") or die(mysql_error());
mysql_query("
CREATE TABLE IF NOT EXISTS `second_table` (
`user_id` INT(10) NOT NULL,
`fieldstotal` INT(10) NOT NULL,
FOREIGN KEY (`user_id`) REFERENCES tblclients (`id`)
)
") or die(mysql_error());或者更好,使用查询 --这意味着您必须切换到米斯里。
发布于 2012-12-24 16:48:42
按错误信息说的做就行。
一次只能使用和新代码中的函数执行一个查询。它们不再是维护的被官方否决了。看到红盒了吗?相反,学习https://en.wikipedia.org/wiki/Prepared_statement,并使用PDO,或者MySQLi - 这篇文章将帮助您决定哪一个。如果您选择PDO,这里有一个很好的教程。
https://stackoverflow.com/questions/14023810
复制相似问题