Pegas
Новичок
Проблема в связке InterBase + PHP
FireBird 1.5 + php 5.2.0.
Вариант 1.
скрипт parsing.php
скрипт mail.php
Запускаю скрипт parsing.php с браузера - все проходит на УРА, поля обновляются:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Выполняю запросы UPDATE со всеми параметрами отдельно в оболочке IB Expert:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Запускается скрипт parsing.php из своей программы на дельфи, в результате:
ORDERSTATUS = 1
SENDED_TO_SUPPLIER = 1
С какого так обновляется поле?
Вариант 2.
скрипт parsing.php - комменты сняты, там заполняется БД данными, в том числе поле ORDERSTATUS = 2.
скрипт mail.php - без изменений.
Запускаю скрипт parsing.php с браузера - все проходит на УРА, поля обновляются:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Выполняю запросы UPDATE со всеми параметрами отдельно в оболочке IB Expert:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Запускается скрипт parsing.php из своей программы на дельфи, в результате:
ORDERSTATUS = 2
SENDED_TO_SUPPLIER = NULL
Т.е. обновление полей вообще не прошло.
Сообщений об ошибках ни в каком из случаев НЕТ.
Люди, хелп! Хотя бы подскажите, где копать? Второй день мучаюсь, танцы с бубном уже танцевал - не помогает. Библиотека с InterBase кривой по идее быть не должна, в других скриптах UPDATE проходит без проблем.
-~{}~ 14.02.07 17:07:
Есть предположение, что кривая библиотека в дельфях.
-~{}~ 15.02.07 16:42:
Обнаружил, что в библиотеке задается множество параметров работы протокола HTTP. Т.к. основное отличие состоит в том, что с браузера работает все ок, то полюбому надо копать настройки этой библиотеки. А это уже не на этом форуме выяснять....
-~{}~ 15.02.07 18:18:
Комедия продолжается...Проверил все настройки библиотеки, все ОК. Создал простенькую табличку в БД с 1м полем. Заменил запросы на такие:
Проще как говорится некуда. ВСЕ РАБОТАЕТ!
Народ, помогите идеями в решении проблемы.
FireBird 1.5 + php 5.2.0.
Вариант 1.
скрипт parsing.php
PHP:
// Подключаем файл конфигурации
if (is_file($_SERVER['DOCUMENT_ROOT'].'/system/config.php'))
include_once($_SERVER['DOCUMENT_ROOT'].'/system/config.php');
// Подключаем файл функций
if (is_file($_SERVER['DOCUMENT_ROOT'].'/system/function.php'))
include_once ($_SERVER['DOCUMENT_ROOT'].'/system/function.php');
// Подключаем файл Zip Module
if (is_file($_SERVER['DOCUMENT_ROOT'].'/pclzip.lib.php'))
include_once($_SERVER['DOCUMENT_ROOT'].'/pclzip.lib.php');
// Подключение к БД
$link = ibase_connect($cfg['hostname'].$cfg['dbname'], $cfg['username'], $cfg['password']) or die ("Could not connect");
/*
закомментированный код
*/
ibase_close($link);
// Подключается файл автоматической отправки заказа по электронной почте
if (is_file($_SERVER['DOCUMENT_ROOT'].'/system/mail.php'))
include_once ($_SERVER['DOCUMENT_ROOT'].'/system/mail.php');
PHP:
// Подключение к БД
$link = ibase_connect($cfg['hostname'].$cfg['dbname'], $cfg['username'], $cfg['password']) or die ("Could not connect");
...
$tran = ibase_trans(IBASE_WAIT, IBASE_COMMITTED, IBASE_WRITE, $link);
foreach ($arr1 as $k1 => $v1)
{
...
if (send_mail($emailaddress, $fromaddress, $emailsubject, $body, $attachments, $attachment_mem) == false)
echo "Send mail false.<br>";
else
{
//echo "Send mail completed.<br>";
$query = "
UPDATE
ORDERS
SET
ORDERSTATUS = 3
WHERE
ORDERSLISTSUPP_CODE = ".$v1[3]." and
CUSTOMER_CODE = ".$v1[4]." and
CREATEDATE = '".$v1[7]."' and
BDNUMBER = ".$v1[8].";";
if (($result = ibase_query($tran, $query)) == false)
{
echo "Query falled. ".ibase_errmsg()."<br>";
ibase_rollback($tran);
break;
}
$query = "
UPDATE
ORDERSLISTSUPP
SET
SENDED_TO_SUPPLIER = 1
WHERE
ID = ".$v1[3]." and
CUSTOMER_CODE = ".$v1[4]." and
CREATEDATE = '".$v1[7]."' and
BDNUMBER = ".$v1[8].";";
if (($result = ibase_query($tran, $query)) == false)
{
echo "Query falled. ".ibase_errmsg()."<br>";
ibase_rollback($tran);
break;
}
}
}
if (ibase_commit($tran) == false)
{
echo "Query falled. ".ibase_errmsg()."<br>";
ibase_rollback($tran);
break;
}
ibase_close($link);
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Выполняю запросы UPDATE со всеми параметрами отдельно в оболочке IB Expert:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Запускается скрипт parsing.php из своей программы на дельфи, в результате:
ORDERSTATUS = 1
SENDED_TO_SUPPLIER = 1
С какого так обновляется поле?
Вариант 2.
скрипт parsing.php - комменты сняты, там заполняется БД данными, в том числе поле ORDERSTATUS = 2.
скрипт mail.php - без изменений.
Запускаю скрипт parsing.php с браузера - все проходит на УРА, поля обновляются:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Выполняю запросы UPDATE со всеми параметрами отдельно в оболочке IB Expert:
ORDERSTATUS = 3
SENDED_TO_SUPPLIER = 1
Запускается скрипт parsing.php из своей программы на дельфи, в результате:
ORDERSTATUS = 2
SENDED_TO_SUPPLIER = NULL
Т.е. обновление полей вообще не прошло.
Сообщений об ошибках ни в каком из случаев НЕТ.
Люди, хелп! Хотя бы подскажите, где копать? Второй день мучаюсь, танцы с бубном уже танцевал - не помогает. Библиотека с InterBase кривой по идее быть не должна, в других скриптах UPDATE проходит без проблем.
-~{}~ 14.02.07 17:07:
Есть предположение, что кривая библиотека в дельфях.
-~{}~ 15.02.07 16:42:
Обнаружил, что в библиотеке задается множество параметров работы протокола HTTP. Т.к. основное отличие состоит в том, что с браузера работает все ок, то полюбому надо копать настройки этой библиотеки. А это уже не на этом форуме выяснять....
-~{}~ 15.02.07 18:18:
Комедия продолжается...Проверил все настройки библиотеки, все ОК. Создал простенькую табличку в БД с 1м полем. Заменил запросы на такие:
PHP:
$query = "UPDATE AAA SET ID = 220 WHERE ID = 22;";
$query = "UPDATE AAA SET ID = 110 WHERE ID = 11;";
Народ, помогите идеями в решении проблемы.