Я переношу все мои запросы mysqli в STORED PROCEDURE. Это должно быть так же просто, как изменить одну строку в вызове mysqli, но два следующих кода дают разные результаты:
Регулярный запрос, который работает правильно:
$query = $this->mysqli->query("SELECT DISTINCT ID FROM user WHERE MATCH (name) AGAINST ('* *$sanitized* *') "); if ($query) { $nrows = $query -> num_rows; if ($nrows > 0) { $searchResult = 'We found '. $nrows .' results'; } }
CALL to PROCEDURE, которая возвращает ошибку fetch_array () в булевом режиме:
$query = $this->mysqli->query("CALL myfunction('.$sanitized.')");
где процедуры определяются как:
DELIMITER $$ CREATE PROCEDURE myfunction (sanitized VARCHAR(124)) BEGIN SELECT DISTINCT ID FROM user WHERE MATCH (name) AGAINST ('* *sanitized* *'); END $$ DELIMITER ;
Я не могу найти решение, и похоже, что на этом форуме никто не имеет аналогичной проблемы.