MYSQL查询错误创建表

时间:2016-08-15 13:04:33

标签: php mysql

我在Mysql Server 5.7.13上运行,每次尝试创建表时都会抛出此错误:

  

创建表时出错:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'CREATE TABLE内容附近使用正确的语法(第4行的ID为INT NOT NULL AUTO_INCREMENT,page_id longtext,t'

这是我的查询代码:

<?php
// Connect to MySQL
$link = mysql_connect('localhost', 'root', '****');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
	$name = $_POST['name'];

// Make my_db the current database
$db_selected = mysql_select_db($name, $link);

if (!$db_selected) {
  // If we couldn't, then it either doesn't exist, or we can't see it.
$sql = "
  CREATE DATABASE IF NOT EXISTS $name;
  USE $name;
CREATE TABLE content
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  title longtext,
  about longtext,
  content longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE details
(
  id INT NOT NULL AUTO_INCREMENT,
  website_name longtext,
   PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE media
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  post_id longtext,
  time longtext,
  date longtext,
  format longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE pages
(
  id INT NOT NULL AUTO_INCREMENT,
  title longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;";
var_dump($sql);
  if (mysql_query($sql, $link)) {
      echo "Database $name created successfully\n<br/>";
  } else {
      echo 'Error creating database: ' . mysql_error() . "\n<br/>";
  }

}

mysql_close($link);
?>

Sql的Dumb结果

/storage/www/cms/dbcreate.php:51:string

'USE socialnetwk;

CREATE TABLE content
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  title longtext,
  about longtext,
  content longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE details
(
  id INT NOT NULL AUTO_INCREMENT,
  website_name longtext,
   PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE media
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  post_id longtext,
  time longtext,
  date longtext,
  format longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE pages
('... (length=600)
Database socialnetwk created successfully 
Error creating database: 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 content ( id INT NOT NULL AUTO_INCREMENT, page_id longtext, t' at line 5 

1 个答案:

答案 0 :(得分:0)

我做了一个$ sql的var_dump,前两个指令(CREATE DATABASE和USE)缺少分号,应该如下:

$sql = "
  CREATE DATABASE IF NOT EXISTS $name;
  USE $name;
CREATE TABLE content
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  title longtext,
  about longtext,
  content longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE details
(
  id INT NOT NULL AUTO_INCREMENT,
  website_name longtext,
   PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE media
(
  id INT NOT NULL AUTO_INCREMENT,
  page_id longtext,
  post_id longtext,
  time longtext,
  date longtext,
  format longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;
CREATE TABLE pages
(
  id INT NOT NULL AUTO_INCREMENT,
  title longtext,
  PRIMARY KEY (id)
) ENGINE=InnoDB;";