#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. С его сообщением также есть несколько других проблем. Я только обратился к самому вопросу