Неизвестный обработчик подготовленных операторов передан mysqld_stmt_execute

Возникла проблема с подготовленным оператором, когда не возвращаются результаты. Изучив общий журнал запросов MySql, я могу увидеть, где выполняется соединение, но, похоже, запрос никогда не выполнялся.

После добавления mysqli_report(MYSQLI_REPORT_ALL) возвращается следующее сообщение об ошибке:

Unknown prepared statement handler (4) given to mysqld_stmt_execute

Ниже приведен код, выполняющий подготовленный оператор:

$something_in = 'a-string-of-text';

if ($stmt = $this->prepare("SELECT first, last, phone FROM people WHERE something=? ORDER BY last ASC")){

   try{

       if (!$stmt->bind_param('s', $something_in)) {
          die('bind_param() failed: ' . htmlspecialchars($stmt->error));
        } 

       $stmt->execute();
       $stmt->bind_result($first, $last, $something, $phone);

       while($stmt->fetch()){

           $returnArray[] = array(
               'first_name'    => $first,
               'last_name'     => $last,
               'something'     => $something,
               'phone'         => $phone
           );

       }

       $stmt->free_result();
       $stmt->close();

       return $returnArray; // we make it to here with a blank array instead of expected results

   } catch (Exception $ex) {

       return $ex->getMessage();

   }

}

Кто-нибудь еще сталкивался с этой проблемой? Это кажется довольно странным.

Версия MySQL: 5.6

Версия PHP: 7

Еще одна полезная информация: мы используем netscaler, который действует как прокси между нашими серверами приложений и серверами баз данных. Я склонен полагать, что это могло быть причиной зависания.

РЕДАКТИРОВАТЬ

Подтверждено, что это связано с нашим прокси-сервером netscaler, поскольку подключение сервера приложений напрямую к серверу db решает проблему. Отправлю решение, как только причина будет определена.

Попытайтесь проверить ошибки mysqli по пути.

aynber 16.03.2018 17:01

Может, там нужен store_result()как я указал мне на днях

CD001 16.03.2018 17:06

С помощью включение исключений в mysqli можно обнаружить и решить множество проблем, поэтому ошибки не так легко игнорировать.

tadman 16.03.2018 17:45

Обновленный вопрос с результатами, полученными после включения исключений в mysqli.

whitwhoa 16.03.2018 19:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
4
1 971
1

Ответы 1

Решение для этого конкретного граничного случая еще не найдено. Однако отказ от mysqli и использование библиотеки php PDO разрешил дилемму на короткий срок.

Другие вопросы по теме