Перейти к содержимому

Фотография
- - - - -

Ошибка синтаксиса SQLite3


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 8

#1 Basicprof

Basicprof

    Прохожий

    Топикстартер
  • Участник
  • 0
    5 сообщ.

Отправлено 17 Сентябрь 2015 в 20:39

Подскажите пожалуйста Есть ошибка! http://imgdisk.ru/image/U0C
Что исправить в коде какой запрос применить 
Код:

    if ($db = new SQLite3('mysqlitedb', 0666, $sqliteerror)) {
        
         $db->exec('CREATE TABLE orders (time date(255), name varchar(255), phone varchar(255))');
        
         $db->exec("INSERT INTO orders (time, name, phone) VALUES ($today, $name, $phone)");
        
        } else {
        
         die($sqliteerror);
        
        }
 

Если кто может пожалуйста наглядно подскажите как исправить ошибку синтаксиса!


  • 0

Спонсор

#2 Volly

Volly

    Увлеченный

  • Участник
  • 110
    540 сообщ.

Отправлено 17 Сентябрь 2015 в 21:57

23 строка это какая?


  • 0

#3 Basicprof

Basicprof

    Прохожий

    Топикстартер
  • Участник
  • 0
    5 сообщ.

Отправлено 18 Сентябрь 2015 в 16:10

23 это

 $db->exec("INSERT INTO orders (time, name, phone) VALUES ($today, $name, $phone)");


  • 0

#4 Volly

Volly

    Увлеченный

  • Участник
  • 110
    540 сообщ.

Отправлено 18 Сентябрь 2015 в 22:14

Не числовые значения перед вставкой в базу принято заключать в кавычки.

Попробуйте изменить строку

$db->exec("INSERT INTO orders (time, name, phone) VALUES ($today, $name, $phone)");

на такую

$db->exec("INSERT INTO orders (time, namee, phone) VALUES ('".$today."', '".$namee."', '".$phone."')");

т. е.

сначала одинарная кавычка '

потом двойная "

потом точка .

потом доллар и имя переменной

потом точка .

потом двойная "

потом одинарная кавычка '


  • 2

#5 Basicprof

Basicprof

    Прохожий

    Топикстартер
  • Участник
  • 0
    5 сообщ.

Отправлено 18 Сентябрь 2015 в 22:47

Ошибка

 

http://imgdisk.ru/image/Umr


ок исправил, namee ошибки нет.


  • 0

#6 Volly

Volly

    Увлеченный

  • Участник
  • 110
    540 сообщ.

Отправлено 19 Сентябрь 2015 в 00:53

Пардон, не заметил как у меня лишнее е затесалась.

Пусть будет как было у вас, только кавычки и точки добавить:

$db->exec("INSERT INTO orders (time, name, phone) VALUES ('".$today."', '".$name."', '".$phone."')");


Сообщение отредактировал Volly: 19 Сентябрь 2015 в 00:53

  • 0

#7 Basicprof

Basicprof

    Прохожий

    Топикстартер
  • Участник
  • 0
    5 сообщ.

Отправлено 19 Сентябрь 2015 в 17:44

Спасибо отлично!

еще вопрос вот ошибка http://imgdisk.ru/image/UwC 

строка 23 это вот эта 

$this->_db = new SQLiteDatabase(self::DB_NAME);

что тут исправить можно


причем на локальном сервере работает а на хостинге ошибка


  • 0

#8 Volly

Volly

    Увлеченный

  • Участник
  • 110
    540 сообщ.

Отправлено 19 Сентябрь 2015 в 18:03

Если на хостинге ничего с SQLite не работает, значит это расширение у них не подключено.

А если что-то всё ж работает, то значит настройки разные у сервера дома и у хостера.

Настройки можно сравнить. Для этого создать файл с название test.php с одной строкой:

<? phpinfo() ?>

Положить этот файл на сайте дома и ещё скопировать на хост.

Окрыть их браузером в разных окнах и сравнить настройки касаемые SQLite


  • 0

#9 Basicprof

Basicprof

    Прохожий

    Топикстартер
  • Участник
  • 0
    5 сообщ.

Отправлено 19 Сентябрь 2015 в 18:52

SQLite на хостинге подключен на всех серверах 

 

Если это sqlite3

 

http://imgdisk.ru/image/UwS

http://imgdisk.ru/image/Uwj

то одинаково 


  • 0



Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение
Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей