Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет, такая проблема:
есть VPS, на нем работает небольшой php-скрипт, который заносит в одну общую таблицу с 5-6 столбцами MySQL (назовем ее "alldata") данные, которые поступают на сервер извне и хранятся в обычном txt. Далее, в этом php-скрипте инклудится обработчик sortirovka.dbr, который отвечает за сортировку всех данных из столбцов "alldata" по всем остальным определенным таблицам MySQL ("firma","gorod","strana" и т.д.).
И вот тут проблема: в таблицу "alldata" значения пишутся, а вот дальше уже не сортируются. Я так понимаю, что как раз проблема в работе *.dbr . Возможно, что-то нужно докрутить в конфиге апача или в настройках mysql на самом сервере для корректной работы данной конструкции? Или в чем беда?
Неактивен
дело не в конфиге; нужно смотреть, что в самом файле
Неактивен
Спасибо, а какой именно файл?
Дело в том, что это восстановленный бекап старого сервера, т.е. раньше все работало. Перенесли на новый и вот сейчас что-то не хочет работать (
Отредактированно Alexandre (01.08.2014 12:27:15)
Неактивен
php (и подключаемые в нем файлы) и искать в нем место где "чего-то не хочет".
Неактивен
Хорошо, а как искать это место?
Дело в том, что обработка всех данных из таблицы "alldata", которая создается с помощью php-скрипта, лежит в фале dbr. То, что нужно от php-скрипта - работает и создается, а вот когда наступает черед инклудного в этот php файла dbr, то вот там как раз все и стопорится. В dbr вшита сортировка большого кол-ва таблиц из таблицы "alldata", созданной php-скриптом. Т.е. dbr не то что выполняется частично или еще как, он не выполняется вообще.
Поэтому и грешил на настройки сервера. Как можно решить проблему?
Неактивен
А что это за файл .dbr? (гугл говорит, что образ диска )
Неактивен
Ну вот я тоже не знаю, мне досталось все в таком виде
Вот как он выглядит (это черновое, некоторые значения могут быть неправильными, рабочей версии сейчас под рукой нет):
<?
class dbr{
function dbr($type){}
function abon($type){
global $kon,$mod;
$link = $this->connect_to_mysql();
$query = "select kacod,katype from alldata where kamod=$mod and kakontr=$kon and katype=$type";
if($result1 = mysql_query($query,$link)){
while($row1 = mysql_fetch_object($result1)){
$user=$row1->kacod;
}
}
return $user;
}
function connect_to_mysql(){
$link = mysql_connect(MY_HOST, MY_DB, MY_USER, MY_PASSWD);// устанавливаем соединение с БД
mysql_select_db(MY_DB,$link);
mysql_query('SET NAMES utf8');
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
if($link) return $link;
else false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Обработка данных
function beac($arr_beac,$date){
global $kon,$mod;
$user1=$this->user(1);
$user2=$this->user(2);
foreach ($arr_beac as $param=>$str){
$query='';
switch ($param){
case "street":
if(preg_match("/Str_/",$str))$str=str_replace("Str_","(",$str).")";
$query = "delete from kastree where kacod=$user1 and date='$date'";
if(isset($user1) && $user1!='')mysql_query($query);
$query = "insert into street(kacod,date,kastr) values($user1,'$date','$str')";
if(isset($user1) && $user1!='')mysql_query($query);
break;
}
}
}
Ну и далее.
Неактивен
То есть .dbr файл - это просто файл php, у которого изменено расширение. По крайней мере нужно добавить минимальную обработку ошибок там, где выполняются запросы к базе
Неактивен
А можно попробовать просто изменить расширение файла на php и во всех инклудах его сменить?
Обработку ошибок попробую, спасибо)
Но дело в том, что в самом коде dbr'a все работало хорошо на старом сервере с имеющимся кодом. Ума не приложу, почему тут, на новом, такая засада.
Неактивен
Из того, что вы описали кажется, что можно просто сменить расширение на php. Но нужно проверять, вдруг были какие-то скрытые цели.
Неактивен
Я думал, что эти dbr остались после того, как базу переписали под MySQL с Firebird. Может, так оно и есть?)
Неактивен
Расширение dbr, насколько я понимаю, просто особенность оформления файла. Может быть это давно кто-то придумал.
Неактивен
Вобщем не помогла смена расширения на php и замена во всех сопутствующих фалах sortirovka.dbr на sortirovka.php - с таким раскладом данные, поступающие на сервер, даже в первую таблицу alldata не заносятся.
Мозг кипит.
Готов заплатить тому, кто поможет решить проблему. Пишите ЛС / скайп iuserik, обсудим )
Отредактированно Alexandre (02.08.2014 23:54:21)
Неактивен