Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: FireBird и календарь

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Bukinator
Отправлено: 19 Февраля, 2015 - 16:09:57
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




День добрый!

Пытаюсь вставить в запрос к FB 2.5 ограничение по дате из JS календарика.

$st_date= $_POST['st_date'];
$end_date=$_POST['end_date'];

$query = "SELECT * from EVENTS WHERE (EVENTS.EV_DATE > $st_date) AND (EVENTS.EV_DATE <= $end_date)";

Дата выводится в формате 'format' : 'd.m.Y'
(01.02.2014)
В итоге получаю ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104

Соответственно, если вводить в запрос дату ручками - всё работает.
Насколько я понимаю, скрипт выдаёт переменную в двойных кавычках, а FB просит апострофы. Как мне с этим справиться?
 
 Top
GoDr
Отправлено: 19 Февраля, 2015 - 16:23:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




а что мешает дату сделать в нужном формате?


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Bukinator
Отправлено: 20 Февраля, 2015 - 07:35:14
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Имеется ввиду, что при вставке переменной запрос получается :

$query = "SELECT * from EVENTS WHERE (EVENTS.EV_DATE > 01.01.2015) AND (EVENTS.EV_DATE <= 01.02.2015)";
то есть без кавычек, а FB нужны в запросах одинарные, то есть апострофы '
Из-за этого и возникает ошибка.


EDIT: быстрофикс

(Отредактировано автором: 20 Февраля, 2015 - 08:01:55)

 
 Top
soulner
Отправлено: 20 Февраля, 2015 - 08:04:19
Post Id



Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2012  
Откуда: Россия, Питер


Помог: 0 раз(а)




Могу предложить такой вариант
PHP:
скопировать код в буфер обмена
  1. $st_date= $_POST['st_date'];
  2. $end_date=$_POST['end_date'];
  3. // тут хорошо бы проверить даты на правильность
  4. $st_date = strtotime($st_date);
  5. $end_date = strtotime($end_date);
  6. $query = "SELECT * from EVENTS WHERE (EVENTS.EV_DATE > '".date('d.m.Y',$st_date)."') AND (EVENTS.EV_DATE <= '".date('d.m.Y',$end_date)."')";
 
 Top
Bukinator
Отправлено: 20 Февраля, 2015 - 08:29:26
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Утро вечера мудренее.
Решилось
$st_date= "'".$_POST['st_date']."'";
$end_date="'".$_POST['end_date']."'";

(апостроф поставлен в кавычки с обеих сторон)
 
 Top
GoDr
Отправлено: 20 Февраля, 2015 - 10:53:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Bukinator, начинай использовать подготовленные выражения ;)


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB