Исправляемая неустранимая ошибка: объект класса mysqli не удалось преобразовать в строку в

#php #mysql #mysqli

#php #mysql #mysqli

Вопрос:

Пожалуйста, помогите мне. Я вижу ошибку: Уловимая неустранимая ошибка: объект класса mysqli не удалось преобразовать в строку в

Из кода

 <?php
include 'koneksi.php';
$konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
if ($konek){
    echo 'Could not run query :' .mysqli_error();
    exit;
}
while ($row=mysqli_fetch_array($konek)){
    echo (' $row[0] | $row [1] | $row[2] <br/>');
}
?>
  

Комментарии:

1. if (!$konek){ , echo $row[0].' | '.$row[1].' | '.$row[2].'<br/>';} , mysqli_query($connection,'SELECT * FROM member ORDER By id ASC');

Ответ №1:

Ваш код в корне нарушен:

mysqli ожидает, что его дескриптор соединения будет первым аргументом, но вы передаете строку запроса:

 $konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
  

Это должно быть:

 $konek = mysqli_query($database_handle, 'SELECT ...');
  

Тогда есть:

 if ($konek){
  

mysqli возвращает логическое значение false при сбое или дескриптор оператора при успешном выполнении. Вам нужно сделать

 if (!$konek)
  

для проверки этого false, в противном случае дескриптор оператора всегда будет принимать значение «true», и вы ошибочно выведете уведомление об ошибке.

Строки PHP с ' кавычками НЕ расширяют значения переменных:

 echo (' $row[0] | $row [1] | $row[2] <br/>');
  

таким образом, этот код будет выводить $ , r , o , и т. Д., А не содержимое этих переменных. Вам нужно использовать " кавычки вместо:

 echo ("$row[0] | $row [1] | $row[2] <br/>");
  

и тогда есть $row [1] . Обратите внимание на пробел там. Для этого PHP выведет следующее:

 Array [1]
  

потому что пробел «разрывает» вашу ссылку на массив. Итак, в общей сложности вам нужно

  echo (" $row[0] | $row[1] | $row[2] <br/>");
  

И обратите внимание, что echo это не функция, вам НЕ нужно использовать () ее аргументы.

Ответ №2:

На самом деле ваша ошибка вызвана тем, что вы передаете a string вместо conn переменной.

Смотрите: http://us3.php.net/manual/en/mysqli .query.php

 mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
  

Вы передаете запрос, а не $link соединение mysqli. Вам нужно передать оба:

 $konek = mysqli_query($YOUR_LINK, 'SELECT * FROM member ORDER By id ASC');
  

Также у вас есть много других ошибок, которые рассматриваются в других ответах.

Ответ №3:

Ваш код выполнен в обратном направлении

 $konek = mysqli_query('SELECT * FROM member ORDER By id ASC');
if ($konek){
  

Поэтому, если $konek это успешно, вы выдаете свою ошибку. Попробуйте это

 if(!$konek) {
  

Комментарии:

1. кроме того, в OP отсутствует ссылка для подключения -> $konek = mysqli_query(**$conn**, 'SELECT...

2. С его сообщением также есть несколько других проблем. Я только обратился к самому вопросу