Открытый курсор MySQL вызывает ошибку & quot; POST myphp.php net :: ERR_CONNECTION_RESET & quot;

У меня есть хранимая процедура в MySQL, которая запускается из файла PHP. Все хорошо, пока я закомментирую всю обработку курсора в хранимой процедуре (кроме объявлений).

Если, однако, я оставляю так много, как open myCursor; работает (с или без close myCursor;) Я получаю сообщение об ошибке «POST myphp.php net :: ERR_CONNECTION_RESET».

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

Несмотря на ошибку, обработка, выполняемая с помощью курсора, работает, и хранимая процедура продолжает регистрировать свой прогресс до конца. Только когда он возвращается к PHP, все это разваливается без видимой причины.

Единственная возможность, которую я вижу, состоит в том, что курсор повреждает результаты, возможно, производя какое-то предупреждающее сообщение, но если это так, я не знаю, какое сообщение или как с ним работать, и нет явной причины для сообщения об ошибке, особенно Я не должен бежать так много, как один Fetch на курсор, чтобы создать проблему.

Вот как выполняется хранимая процедура:

if ($stmt2 = mysqli_prepare($con, "call mySP(?)")) {#Store statement
mysqli_stmt_bind_param($stmt2, 's', $par);
mysqli_stmt_execute($stmt2);
$result = mysqli_stmt_get_result($stmt2);

mysqli_stmt_execute($stmt2); это последняя строка, которую я могу точно сказать, работает. Ничто в остальной части PHP не работает после $result = mysqli_stmt_get_result($stmt2);,

Обратите внимание, что если после mysqli_stmt_execute($stmt2); Я вывожу mysqli_stmt_errno($stmt2).','.mysqli_stmt_error($stmt2) Я получаю «0», поэтому похоже, что mysqli_stmt_execute($stmt2);

Для полноты вот выдержка из javascript, который используется для вызова PHP:

$.ajax({
type : "POST",
url : "./php/myphp.php",
cache : false,
data : {
sheet : JSON.stringify(userJson)
},
datatype : "json"}).done(function(result) {

Пожалуйста, помогите, так как я рву на себе волосы, и не могу найти способа отладить или обойти это.

0

Решение

Задача ещё не решена.

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

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

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