last day (15 days later) » 

23:09
0
Q: PHP- Object of class mysqli could not be converted to string

Diana MadeiraTou tendo o seguinte erro:Object of class mysqli could not be converted to string. Codigo PHP: <?php include("config.php"); $query = $_GET['query']; $min_length = 3; if(strlen($query) >= $min_length){ $query = htmlspecialchars($query); $query = mysqli_re...

O que seria esses $query.$conn dentro da query?
o mysqli requer dois paramentros, neste caso o primeiro que é $conn é a conexão a base de dados e o segundo é SELECT statement
editei a resposta, agora tem o codigo todo
Sim, mas não faz sentido ter o objeto de conexão com o banco de dados no meio do select. Tente remover $conn onde está $query.$conn.
"SELECT * FROM books WHERE Title LIKE '%".$query."%' OR text LIKE '%".$query."%'"
se retiro o $conn, da erro, diz mysqli necessita de 2 parametros
Qual $conn você tirou?
23:09
o que esta atras do SELECT
Veja meu comentário acima. Eu passei exatamente qual é o $conn que você deve retirar. Ele não deve estar DENTRO da instrução SELECT.
Você está fazendo:
$row_results = mysqli_query($conn,"SELECT * FROM books WHERE (`Title` LIKE '%".$query.$conn."%') OR (`text` LIKE '%".$query.$conn."%')") or die(mysqli_error());
Deveria ser:
$row_results = mysqli_query($conn,"SELECT * FROM books  WHERE `Title` LIKE '%".$query."%') OR `text` LIKE '%".$query."%'") or die(mysqli_error());
Removendo apenas os $conn que estão DENTRO da instrução SELECT
copiei seu codigo
mysqli_error() expects exactly 1 parameter, 0 given in /home/unn_w17015779/public_html/search.php on line 21
deu esse erro
como te falei
Sobrou um parenteses ali que esqueci de remover, mas nao deveria causar o erro
Copia aqui exatamente o seu código
<?php

include("config.php");

if(!isset($_SESSION['user'])){
echo "As administrator you are not logged in,please click here to <a href='memberarea.html'>Login</a>";
}
$query = $_GET['query'];


$min_length = 3;


if(strlen($query) >= $min_length){

$query = htmlspecialchars($query);


$query = mysqli_real_escape_string($conn,$query);

$row_results = mysqli_query($conn,"SELECT * FROM books
WHERE (`Title` LIKE '%".$query.$conn."%') OR (`text` LIKE '%".$query.$conn."%')");


if(mysqli_num_rows($row_results) > 0){
Mas o $conn continua ali, como você copiou o código que passei?
23:17
eu voltei a por de novo como estava
Se retirar, como ficou?
da aquele erro q te disse
O código, não o erro
<?php

include("config.php");

if(!isset($_SESSION['user'])){
echo "As administrator you are not logged in,please click here to <a href='memberarea.html'>Login</a>";
}

$query = $_GET['query'];


$min_length = 3;


if(strlen($query) >= $min_length){

$query = htmlspecialchars($query);


$query = mysqli_real_escape_string($conn,$query);

$row_results = mysqli_query($conn,"SELECT * FROM books WHERE `Title` LIKE '%".$query."%') OR `text` LIKE '%".$query."%'") or die(mysqli_error());


if(mysqli_num_rows($row_results) > 0){
da maneira voce se fez fica como eu acabei de enviar
E o erro dá exatamente para a mesma linha?
23:22
sim
Ah, o erro muda completamente
eu te falei
Agora ele acusou erro na função mysqli_error, dentro do die
Faltou você passar $conn como parâmetro nessa função
o meu codigo original
fala do object
Object of class mysqli could not be converted to string in /home/unn_w17015779/public_html/search.php on line 22
Sim, porque você estava usando o $conn no meio da instrução SQL
Ele tentava converter o objeto de conexão para string
E isso não é permitido
$row_results = mysqli_query($conn,"SELECT * FROM books WHERE `Title` LIKE '%".$query."%' OR `text` LIKE '%".$query."%'") or die(mysqli_error($conn));
A linha deve ficar assim
Entendeu?
23:28
sim
coloquei esse seu codigo
e apareceu isto
Unknown column 'text' in 'where clause'
Existe a coluna text no banco de dados?
Então esse é o erro
Você não pode fazer uma busca em uma coluna que não existe
23:33
sim
tive q so alterar isso do text
pequeno erro
ele so nao ta funcionando num promenor
ta vendo o isset?
pois bem so quem estiver cadastrado é que pode aceder
entao o codigo que tenho nesse momento
pede para a pessoa fazer log in mas ao mesmo tempo mostra o conteudo
É porque você não interrompe a execução do arquivo se entrar no if
Apenas imprime a mensagem
Se você colocar todo o resto do código dentro do else já resolveria esse problema
eu fiz isso
e deu certo
mas o problema é que depois nao reconhece que a pessoa ja fez o log in
e pede de novo pa fazer log in
acabei de tentar
aparece so para fazer log in
mas depois n reconhece q a pessoa ja fez o log in e pede de novo

  last day (15 days later) »