Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Не могу разобраться с запросом


Автор: davut 21.8.2012, 08:56
Код

<?php
$db='10.5.12.6:/db/SED Rozisk/2012_rozisk.fdb';
$dbuser='sysdba';
$dbpass='masterkey';
$constr = ibase_connect($db,$dbuser,$dbpass);
$query = "SELECT ID_SNILS FROM IP";
$result = ibase_query($constr, $query);
while($result_row = ibase_fetch_row($result))
{
   $ID=$result_row[0];
   $OPFR=iconv("CP1251","UTF-8",$result_row[1]);
   $reg='/^\w{5}\s\№\d{9}\s\(\w{1}\d{6}\)+$/iu';
   if (preg_match($reg, $OPFR)) 
   {
      $ID_SNILS=substr($OPFR, -19, -10);
      $query = "UPDATE IP SET (ID_SNILS=$ID_SNILS)";
      ibase_query($constr, $query);
   }
   else {
      $ID_SNILS="";
      $query = "UPDATE IP SET (ID_SNILS=$ID_SNILS)";
      ibase_query($constr, $query);
   }   
}
ibase_close($constr);
?>

смысл этого скрипта таков: Есть таблица IP. С нее вытягиваем по первому запросу поле содержимое полей ID_SNILS. Затем сравниваем с регулярным выражением, если оно соответствует ему то обновляем значение поля(если было СНИЛС №132561026 (T010101), то преобразовать его в 132561026, т.е. отсекаю ненужное и обновляю значение в таблице и так прохожусь по всем записям, иначе же если условие не выполнилось оставляю поле пустым.)
Проблема такова: не работают скрипты на обновление UPDATE. 
Выходит ошибка:
Warning: ibase_query(): Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 15 ( in /var/www/index.php on line 44)
Если кто знает объясните в чем проблема.

Автор: Akella 21.8.2012, 11:57
тебе ж написали где ошибка:

Цитата(davut @  21.8.2012,  08:56 Найти цитируемый пост)
Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 15


Автор: Frees 21.8.2012, 14:38
Код

"UPDATE IP SET (ID_SNILS="+$ID_SNILS+") where " + (ID_SNILS="+$OPFR+")"




Добавлено через 1 минуту и 50 секунд
Цитата(Akella @  21.8.2012,  14:57 Найти цитируемый пост)
тебе ж написали где ошибка:


странно что column 15 ведь это "(" 25 было бы правильнее.

Автор: Akella 21.8.2012, 15:10
Просто нашёл открывающуюся скобку и не нашёл закрывающуюся.

Автор: Deniz 22.8.2012, 07:13
А зачем там вообще скобка?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)