Проблема с версией php (7.4) и ошибка 500, если php 7.3 в PrestaShop 17.7.2

#php #prestashop #prestashop-1.7

Вопрос:

У меня проблема с магазином.

Она использует ShippingBo для управления своими заказами, за исключением того, что в последнее время он больше не работает.

Вот ошибка, которая вернулась:

 <error>
  <code>
    <![CDATA[ 15 ]]>
  </code><message>
    <![CDATA[ [PHP Unknown error #8192] array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead (/home/pzkb4321/public_html/src/Adapter/EntityMapper.php, line 99) ]]>
  </message>
</error>
 

После некоторых исследований я знаю, что это, вероятно, связано с версией PHP, и действительно, мой сервер находится не в той версии.

Он использует PHP 7.4, а для Prestashop 1.7 вам нужен PHP 7.3.

Я попытался изменить PHP-версию своего сервера, за исключением того, что на моем сайте появилась ошибка 500.

[Исключение PrestaShop DatabaseException]

Неизвестная ошибка MySQL

ВЫБЕРИТЕ s.id_shop, ОБЪЕДИНИТЬ(su.physical_uri, su.virtual_uri) В КАЧЕСТВЕ uri, su.domain, su.main ИЗ by_shop_url su СЛЕВА ПРИСОЕДИНИТЬСЯ К by_shop s НА (s.id_shop = su.id_shop), ГДЕ (su.domain = 'belym.com' ИЛИ su.domain_ssl = 'belym.com') И s.активный = 1 И s.удаленный = 0 ПОРЯДОК ПО ДЛИНЕ(КОНКАТ(su.physical_uri, su.virtual_uri)) описание

в строке 769 в файле classes/db/Db.php

 if ($webservice_call amp;amp; $errno) {
    $dbg = debug_backtrace();
    WebserviceRequest::getInstance()->setError(500, '[SQL Error] ' . $this->getMsgError() . '. From ' . (isset($dbg[3]['class']) ? $dbg[3]['class'] : '') . '->' . $dbg[3]['function'] . '() Query was : ' . $sql, 97);
} elseif (_PS_DEBUG_SQL_ amp;amp; $errno amp;amp; !defined('PS_INSTALLATION_IN_PROGRESS')) {
    if ($sql) {
        throw new PrestaShopDatabaseException($this->getMsgError() . '<br /><br /><pre>' . $sql . '</pre>');
    }
 
    throw new PrestaShopDatabaseException($this->getMsgError());
    }
}
 

экран ошибок

Спасибо вам за вашу помощь