Ошибка после переноса базы на другой сервер

Ответить
Vershik
Сообщения: 75
Зарегистрирован: 23 апр 2021, 00:47
Имя: Алексей
Откуда: Севастополь

Ошибка после переноса базы на другой сервер

Сообщение Vershik »

После переноса базы на другой сервер стало выдавать следующую ошибку (много раз повторяется):

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\includes\classes\fieldstypes\fieldtype_php_code.php(175) : eval()'d code on line 9

Ошибка ссылается на обработку php, при этом думал, что код мог некорректно перенестись при импорте MySQL, перенёс код вручную - не помогло. Сам код ниже:

Код: Выделить всё

$id = [id];
$result = array();
$info_query = db_query("select id lid from app_entity_27 where parent_item_id=" . $id);
while ($info = mysqli_fetch_assoc($info_query)) {
    $lid = $info['lid'];
  
    $info_query2 = db_query("select entity_28_items_id o from app_related_items_27_28 where entity_27_items_id=" . $lid);  
    $info2 = db_fetch_array($info_query2);
    array_push($result, $info2['o']);      
}

$value = '';
foreach (array_unique($result) as $kid) {
  if($kid > 0) {
    $info_query3 = db_query("select field_268 p, field_272 s from app_entity_28 where id=" . $kid);
    $info3 = db_fetch_array($info_query3);
    $p = $info3['p'];
    $s = $info3['s'];
    $status = '';
    if($s == 73) {$status = 'Проект';} else 
    if($s == 78) {$status = 'Определение цены';} else 
    if($s == 79) {$status = 'На согласовании';} else 
    if($s == 80) {$status = 'Согласовано';} else 
    if($s == 87) {$status = 'В закупке';} else 
    if($s == 88) {$status = 'Законтрактовано';}
    $value = $value . "<a target='_blank' href='https://zakupki.gallery/zakupki/index.php?module=items/info&path=28-" . $kid . "'>" . $kid . ". " . $p . " (" . $status . ")</a><br>";
  }  
}

$output_value = $value;
Есть подозрение, что ошибка на моей стороне в части настроек PHP.

После тестов:
В самом начале PHP код перебирает базу. И натыкается на ошибку с удалёнными позициями.
Опять же.. в прошлой базе ошибок нет, а вот в перенесенной есть. Может статус удалённых из MySQL позиций как-то меняется.. ищу дальше
Vershik
Сообщения: 75
Зарегистрирован: 23 апр 2021, 00:47
Имя: Алексей
Откуда: Севастополь

Re: Ошибка после переноса базы на другой сервер

Сообщение Vershik »

Проблема решена.

Т.к. позиций нет в array, происходила ошибка.

Решение простое в 9 строке:

Код: Выделить всё

if(!empty($info2)) {
    array_push($result, $info2['o']);
}
Всё равно остаётся вопрос, почему на прошлом сервере такой ошибки не возникает
Аватара пользователя
support
Техническая поддержка
Сообщения: 9348
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Ошибка после переноса базы на другой сервер

Сообщение support »

Это скорей всего от версии php зависит, а не от базы.
Ответить