Добрый день, возможно кто-то сталкивался с подобной проблемой.
Предистория такая, 1с по ftp выгружает xml файл. Изначально стуктура данного файла была таковой
<export>
<counterpart>
<Articul>624005066</Articul>
<kolichestvo>-1</kolichestvo>
<Zena>1 350</Zena>
</counterpart>
<counterpart>
<Articul>624005102</Articul>
<kolichestvo>-2</kolichestvo>
<Zena>2 350</Zena>
</counterpart>
<counterpart>
<Articul>624031744</Articul>
<kolichestvo>5</kolichestvo>
<Zena>1 350</Zena>
</counterpart>
</export>
Но отрицательные значения и цена с пробелом не подходили, поэтому программист 1с сделал замены -1 на 998 и -2 на 999 и соотвественно убрал пробел в цене.
Структура стала такой
<export>
<counterpart>
<Articul>624005066</Articul>
<kolichestvo>998</kolichestvo>
<Zena>1350</Zena>
</counterpart>
<counterpart>
<Articul>624005102</Articul>
<kolichestvo>999</kolichestvo>
<Zena>2350</Zena>
</counterpart>
<counterpart>
<Articul>624031744</Articul>
<kolichestvo>5</kolichestvo>
<Zena>1350</Zena>
</counterpart>
</export>
Был написан простой скрипт такого плана
$xmlProducts = simplexml_load_file('minimen.xml');
$pdo = new PDO("mysql:host=localhost;port=3306;dbname=test;","test","test");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach($xmlProducts->counterpart as $product)
{
if($product->kolichestvo == '998' || $product->kolichestvo == '999')
{
$quantity = 0;
}else{
$quantity = $product->kolichestvo;
}
$sql_update = $pdo->prepare("UPDATE products SET quantity = :quantity, price = :price WHERE product_id = :product_id");
$sql_update->execute(
array(
':product_id' => $product->Articul,
':quantity' => $quantity,
':price' => $product->Zena
));
Так вот собственно в чем суть проблемы. При распечатке $product все нормально
object(SimpleXMLElement)#5 (4) {
["Articul"]=>
string(9) "624031434"
["kolichestvo"]=>
string(3) "999"
["Zena"]=>
object(SimpleXMLElement)#6 (0) {
}
}
object(SimpleXMLElement)#6 (4) {
["Articul"]=>
string(9) "624031744"
["kolichestvo"]=>
string(1) "5"
["Zena"]=>
string(4) "1350"
}
Как мы видим и количество и цена вроде бы все нормально и при обращении к скрипту все пишется корректно и проблем нет.
Но если поставить скрипт на крон, то в бд всеравно пишеться количество -1 и -2 и цена идет с пробелом такого плана 1 350.
В чем может быть проблема? Заранее благодарен за любое мнение и совет