[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Чудеса при insert
Markus111
Здравствуйте,
Я каждый день запускаю через крон скрипт, в нем при выполнении условий создается в БД новая строка, заметил, что примерно раз в неделю случается такое: заносит 2 одинаковые строки. Провел эксперимент по этому поводу, вот что получилось, сегодня запустил скрипт и в БД записало 2 строки, удалил эти строки и еще раз запустил скрипт и в БД записало 1 строку, при повторном запуске скрипта работают проверки(такая проверка: если в этом месяце строка например с значением 10 записана, то новую не нужно создавать), условия одни и те же, кто знает в чем причина?

_____________
Womans in your town
bestxp
разница во времени
уборщица не убралась рядом с сервером
Markus111
Цитата (bestxp @ 13.12.2013 - 11:15)
разница во времени
уборщица не убралась рядом с сервером

"разница во времени" можете написать подробнее

_____________
Womans in your town
bestxp
между сервером и локалью
предположение только
либо пересинхронизация.

что бы узнать что к чему дебаж и еще раз дебаж

пройдись полностью вверх от сохранения к точке входа, может циклы есть какие то
sergeiss
Цитата (Markus111 @ 13.12.2013 - 15:11)
при выполнении условий создается в БД новая строка

Что за условия, в какое время запускается скрипт?

Плюс к этому, сделай ограничения, чтобы строки были уникальными по определенным параметрам и лишние просто не будут записаны.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Markus111
как думаете ini_set('date.timezone', 'America/Denver'); поможет? Проверка идет по месяцах не по часах, так что шансов мало

Возможно нужно синхронизировать запросы к MySQL, подскажите как сделать.

Циклы есть, в них идет проверка. Я выше писал, что сегодня запустил и записало 2 строки, удалил эти строки и еще раз запустил и записало одну строку, как и должно быть, потом еще пробовал и было все нормально. В первой и следующих попытках все в БД было идентично, но причины я так и не понял.

_____________
Womans in your town
Markus111
Цитата (sergeiss @ 13.12.2013 - 13:18)
Цитата (Markus111 @ 13.12.2013 - 15:11)
при выполнении условий создается в БД новая строка

Что за условия, в какое время запускается скрипт?

Плюс к этому, сделай ограничения, чтобы строки были уникальными по определенным параметрам и лишние просто не будут записаны.

Вот часть кода, в 5 утра, сервер а США
if($val['date']<=$dates10){	
$sub_s='1';
$count_subs=count($subs[$val['clients_id']]);
for($i=0;$i<$count_subs;$i++){
$sub=explode('-||-',$subs[$val['clients_id']][$i]['payment_date']);

if($status=='y' && $val['subs_id']==$sub[1]){
$date_d=date('Y',strtotime($val['date']));
$date_p=date('Y',strtotime($sub[0]));
if($date_d!=$date_p){
$sub_s='1';
}else{
$sub_s='0';
}

}
elseif($status=='m' && $val['subs_id']==$sub[1]){
$date_d=date('m',strtotime($val['date']));
$date_p=date('m',strtotime($sub[0]));
if($date_d!=$date_p){
$sub_s='1';
}else{
$sub_s='0';
}
}
}


if($sub_s=='1'){
$date=date('m/d/Y');
$result2="INSERT INTO tblClients_subs (`client_id`,`sub_name`,`sub_date`,`payment_date`,`price`,`recurring_type`) VALUES ('".$val['clients_id']."','".$val['sub_name']."','".$val['date']."','".$date."-||-".$val['subs_id']."','".$val['price']."','pending')";
mysql_query($result2,$con);
//exit();
}
}


_____________
Womans in your town
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.