mysqli_stmt :: fetch () ожидает ровно 0 параметров, 1 указан в [duplicate]

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

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

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

0
задан user3837868 7 April 2019 в 15:33
поделиться

2 ответа

Вы, кажется, вызываете mysqli_stmt :: fetch (), но ожидаете, что он будет действовать как PDOStatement::fetch().

Несмотря на то, что функции имеют одно и то же имя, они имеют разные расширения, и вы не можете смешивать их. Если вы хотите использовать функцию PDO fetch (), вам следует подключиться к базе данных с помощью PDO.

Кроме того, функция mysqli_stmt::fetch() не возвращает строку данных. Он полагается на привязку результатов к переменным .

Я предпочитаю стиль PDO, где PDOStatement::fetch() возвращает строку. Я рекомендую вам конвертировать код для использования PDO повсеместно.

0
ответ дан Bill Karwin 7 April 2019 в 15:33
поделиться

Вы используете стиль извлечения PDO с помощью метода fetch() MySQLi.

Попробуйте:

$result = $records->fetch();

Если вы действительно хотите использовать стиль извлечения PDO, я рекомендую использовать PDO вместо MySQLi.

0
ответ дан Arnaud Peralta 7 April 2019 в 15:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: