Получение ошибки sql PHP

#php #mysql #codeigniter

#php #mysql #codeigniter

Вопрос:

Я следую руководству по codeiniter, в котором мне предлагается создать базу данных со следующим кодом (с использованием mysql):

  $sql = "create database login;
            CREATE TABLE IF NOT EXISTS `user_login` (
            `id` int(11) NOT NULL AUTO_INCREMENT,
            `user_name` varchar(255) NOT NULL,
            `user_email` varchar(255) NOT NULL,
            `user_password` varchar(255) NOT NULL,
            PRIMARY KEY (`id`)
            ) ";
  

Я пытаюсь запустить это, используя свой собственный php-код, но я продолжаю получать эту ошибку и понятия не имею, как ее решить:

 Error creating table: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS `user_login` ( `id` int(11) NOT NULL AUTO_INCREM' at line 2
  

Понятия не имею, что это может быть.

Комментарии:

1. Вы не можете выполнить 2 оператора одновременно с помощью вашей команды PHP.

2. Разделите его, выполните как два оператора. Или, что еще лучше, используйте функцию миграции Codeigniter .

3. @tadman Так ты имеешь в виду, что я должен разделить create database и create table?

4. Мне любопытно, что это за учебник. Является ли он общедоступным по ссылке?

5. @TimBrownlaw Да, это так. formget.com/form-login-codeigniter

Ответ №1:

 create database login;
  

и

 CREATE TABLE IF NOT EXISTS `user_login` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `user_name` varchar(255) NOT NULL,
    `user_email` varchar(255) NOT NULL,
    `user_password` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
)
  

это две команды, которые должны выполняться отдельно. Создайте базу данных, прежде чем пытаться создать таблицу — либо с помощью SQL-клиента, либо выполнив что-то вроде:

 $sql1 = 'create database login;';
$sql1->execute();

$sql2 = 'CREATE TABLE IF NOT EXISTS `user_login`...';
$sql2->execute();