MySQL хранящаяся процедура, называемая в петле PHP - только первая итерационная работа [дублировать]MySql

Форум по Mysql
Ответить
Anonymous
 MySQL хранящаяся процедура, называемая в петле PHP - только первая итерационная работа [дублировать]

Сообщение Anonymous »

Версия PHP: 7.4.3

mysql версия: 8.0.42 < /p>
У меня есть простая хранящаяся процедура, которая выбирает один столбец из таблицы, который называется внутри цикла из моего PHP. Первая итерация работает нормально. Вторая итерация терпит неудачу. Я зарегистрировал операторы SQL, которые создает мой PHP, и когда я запускаю оператор для второй итерации в MySQL Workbench, он работает, как и ожидалось.

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

DELIMITER $$
USE `Valor`$$
CREATE DEFINER=`sean`@`%` PROCEDURE `Critter_GetType`(IN crtr VARCHAR(35))
BEGIN
SELECT  `type` FROM Valor.CreatureStats WHERE creature = crtr LIMIT 1 ;
END$$

DELIMITER ;
;
< /code>
Это мой PHP -код, который вызывает его: < /p>
$sql = "CALL Valor.Critter_GetType('$cc');";
error_log("sql = $sql");
$typeresult = NULL;
$typeresult = $conn->query($sql);
error_log("num rows = $typeresult->num_rows");
while($typerow = $typeresult->fetch_assoc()){
$type = $typerow['type'];
}
Я установил $ typeresult = null , потому что это было предложение, которое я нашел для аналогичной проблемы, но это не помогает. Зарегистрированный SQL работает, как и ожидалось, когда я называю его из -за пределов сценария PHP. Ошибка останавливает скрипт, поэтому, когда я говорю, что вторая итерация не удается, я не подразумеваю, что существует третья итерация, которая работает ОК. $ typeresult-> num_rows ")". Это актуально, но у меня есть десятки других вызовов SQL изнутри в моем PHP, у которых нет этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/797 ... tion-works
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»