I am trying to create more then one MySQL tables using php but it gives errors and i can not sort out what is wrong with it.
PHP code :
$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);
It gives the error, besides do not worry about the mysql connection. I properly connect with the DB and i have tested it, it is definitely some thing wrong with syntax.
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 'CREATE TABLE IF NOT EXISTS
second_table
(user_id
INT
You cannot use semicolon separated queries with mysql_query
, this function only allows one query at a time!
You must execute your statements separately:
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());
Or better, use mysqli_multi_query -- which means you must switch to mysqli.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With