Не могу разобраться с запросом

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
davut
Сообщения: 1
Зарегистрирован: 21 авг 2012, 09:09

Не могу разобраться с запросом

Сообщение davut » 21 авг 2012, 09:25

Код: Выделить всё

<?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)
Если кто знает объясните в чем проблема.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Не могу разобраться с запросом

Сообщение kdv » 22 авг 2012, 19:53

ужасы продолжились тут
http://www.sql.ru/forum/actualthread.aspx?tid=963894

Ответить