Неизвестный обработчик подготовленного оператора передан 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, поскольку подключение сервера приложений напрямую к серверу базы данных решает проблему. Опубликуем решение, как только причина определена.

1

Решение

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]