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