2016-08-15 4 views
-2

Я бегу на сервере Mysql 5.7.13 и каждый раз, когда я пытаюсь создать таблицу, выдает эту ошибку:MYSQL запросов Ошибка создания таблицы

Error creating table: 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

Вот мой код запроса:

<?php 
 
// Connect to MySQL 
 
$link = mysql_connect('localhost', 'root', '****'); 
 
if (!$link) { 
 
    die('Could not connect: ' . mysql_error()); 
 
} 
 
\t $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); 
 
?>

Var тупые Результаты Sql

/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 
+0

как раз ошибка. Вы не можете отказаться от чистого SQL-кода на PHP. Мне кажется, что вы не показываете нам всю картину. –

+0

Хорошо создавая базу данных отлично работает: $ sql = "СОЗДАТЬ БАЗА ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ $ name;"; –

+0

Протестированный код в sql - работает отлично, создается таблица. – ineersa

ответ

0

Я сделал var_dump из $ SQL, это S не хватает запятой в течение первых двух команд (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;"; 
+0

Он по-прежнему выдает ту же ошибку Ошибка при создании базы данных: у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с USE socialnetwk; CREATE TABLE content (id INT NOT NULL AUTO_INCREMENT, page 'в строке 2 –

+0

@CasperRound, не могли бы вы добавьте ini_set ('html_errors', 0), в начале вашего скрипта и вставьте вывод var_dump ($ sql). Не могли бы вы также использовать код, в котором вы подключаетесь t в db и выполнить запрос? – vincenth

+0

Я обновил сообщение всем кодом. Добавлено ini_set ('html_errors', 0); к началу кода, но это не влияет на выход. –