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 :: Parse error: syntax error, unexpected T_STRING on line 21

 PHP.SU

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


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

> Описание: Ошибка при обращении к БД Оракл 10gr1
Антоннн
Отправлено: 27 Августа, 2015 - 06:43:40
Post Id


Новичок


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


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




Добрый день! При обращении к БД выходит ошибка "Parse error: syntax error, unexpected T_STRING"
Простой запрос проходит, а вот с условиями такого рода нет, понятно, что ошибка в синтаксисе, да вот не пойму где именно. В сети пишут, что ошибка не обязательна в 21 строке.
ps: такой запрос в оракле проходит.
ps2: (SYSDATE, 'dd.mm') без ' ' не проходит в оракле.
Кто может помочь? Улыбка


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ($conn = oci_connect("Login", "Password", "SID", 'utf8')) {
  3.    echo '';
  4.  } else {
  5.    $error = oci_error();
  6.    echo "Нет подключения!". $err['text'];
  7.  }
  8. $sql = oci_parse($conn, 'SELECT ffio, podr
  9.  FROM (SELECT ffio,
  10.               to_podr (lschet.fcex) podr,
  11.               lschet.fdatuv,
  12.               fcex,
  13.               lschet.flasttime,
  14.               CASE
  15.                  WHEN fborndate <> 0
  16.                  THEN
  17.                     SUBSTR (to_oradate (fborndate), 1, 5)
  18.               END
  19.                  AS day
  20.          FROM GALZP1.persons INNER JOIN GALZP1.lschet ON lschet.ftperson = persons.fnrec)
  21. WHERE day = (SELECT TO_CHAR (SYSDATE, 'dd.mm') FROM DUAL)
  22.       AND fdatuv = 0
  23.       AND to_podr (fcex) IS NOT NULL
  24.       AND flasttime = 0');
  25. oci_execute($sql);
  26. echo "<table border='1'>\n";
  27. while ($row = oci_fetch_array($sql, OCI_ASSOC+OCI_RETURN_NULLS)) {
  28.     echo "<tr>\n";
  29.     foreach ($row as $item) {
  30.         echo "    <td>" . ($item) . "</td>\n";
  31.     }
  32.     echo "</tr>\n";
  33. }
  34. echo "</table>\n";
  35.  
  36. ?>

(Отредактировано автором: 27 Августа, 2015 - 06:44:18)

 
 Top
Dastor
Отправлено: 27 Августа, 2015 - 10:01:27
Post Id


Гость


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


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




Измени кавычки самого запроса на двойные либо экранируй в 'dd.mm'
(SYSDATE, \'dd.mm\')
 
 Top
Антоннн
Отправлено: 27 Августа, 2015 - 10:07:31
Post Id


Новичок


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


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




Dastor пишет:
Измени кавычки самого запроса на двойные либо экранируй в 'dd.mm'
(SYSDATE, \'dd.mm\')


-Изменить не получится, т.к оракловая функция to_char требуется одинарные ковычки,
-экранирование не дало результата.
 
 Top
Dastor
Отправлено: 27 Августа, 2015 - 10:09:16
Post Id


Гость


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


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




Я имел ввиду сам запрос целиком

PHP:
скопировать код в буфер обмена
  1. $sql = oci_parse($conn, "SELECT ffio, podr
  2. FROM (SELECT ffio,
  3.              to_podr (lschet.fcex) podr,
  4.              lschet.fdatuv,
  5.              fcex,
  6.              lschet.flasttime,
  7.              CASE
  8.                 WHEN fborndate <> 0
  9.                 THEN
  10.                    SUBSTR (to_oradate (fborndate), 1, 5)
  11.              END
  12.                 AS day
  13.         FROM GALZP1.persons INNER JOIN GALZP1.lschet ON lschet.ftperson = persons.fnrec)
  14. WHERE day = (SELECT TO_CHAR (SYSDATE, 'dd.mm') FROM DUAL)
  15.      AND fdatuv = 0
  16.      AND to_podr (fcex) IS NOT NULL
  17.      AND flasttime = 0");
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB