/ / Schwerwiegender Fehler: Aufruf einer Memberfunktion execute () für ein Nichtobjekt in php - php, fataler Fehler

Schwerwiegender Fehler: Aufruf einer Memberfunktion execute () für ein Nichtobjekt in php - php, fataler Fehler

Ich weiß nicht, was geht mit meinem Code ... Sie verwenden Mysqli und wenn ich ausführen, zeigt er diesen Fehler, einige Cam helfen mir pls?

$mysqli = new mysqli($db_host, $db_username, $db_password, $db_name);
if ($mysqli->connect_error) {
die("Error : (". $mysqli->connect_errno .") ". $mysqli->connect_error);
}

$results = $mysqli->prepare("SELECT * FROM `imovel` WHERE `finalidade` LIKE $finalidade AND `nquartos` = $nquarto AND `tipoimovel` LIKE $tipoimovel AND `preco` BETWEEN $pmin AND $pmax AND `conselho` LIKE $conselho AND `frequesia` LIKE $frequesia AND `referencia` = $refimovel AND `garagem` = $garagem AND `jardim` = $jardim AND `piscina` = $piscina AND `condominio` = $condominiof AND `elevador` = $elevador AND `vistapreveligiada` = $vistapriv ORDER BY `imovel`.`preco` DESC LIMIT $page_position, $item_per_page");
$results->execute(); //Execute prepared Query
$results->bind_result($id ,$imagem, $frequesia ,$conselho, $preco); //bind variables to prepared statement

Antworten:

1 für die Antwort № 1

Dies sollte näher an dem sein, was Sie mit Ihrer vorbereiteten Aussage versuchen. Bei Ihrer aktuellen Ausführung ist die SQL ungültig.

$mysqli = new mysqli($db_host, $db_username, $db_password, $db_name);
if ($mysqli->connect_error) {
die("Error : (". $mysqli->connect_errno .") ". $mysqli->connect_error);
}
$results = $mysqli->prepare("SELECT * FROM `imovel` WHERE `finalidade` LIKE ? AND `nquartos` = ? AND `tipoimovel` LIKE ? AND `preco` BETWEEN ? AND ? AND `conselho` LIKE ? AND `frequesia` LIKE ? AND `referencia` = ? AND `garagem` = ? AND `jardim` = ? AND `piscina` = ? AND `condominio` = ? AND `elevador` = ? AND `vistapreveligiada` = ? ORDER BY `imovel`.`preco` DESC LIMIT ?, ?");
$results->bind_param("sssiisssssssssii", $finalidade, $nquarto, $tipoimovel, $pmin, $pmax, $conselho, $frequesia, $refimovel, $garagem, $jardim, $piscina, $condominiof, $elevador, $vistapriv, $page_position, $item_per_page);
$results->execute(); //Execute prepared Query
$results->bind_result($id ,$imagem, $frequesia ,$conselho, $preco); //bind variables to prepared statement

Zeichenfolgen in SQL müssen in Anführungszeichen gesetzt oder durch Platzhalter ersetzt werden ?s sind). Bei Platzhaltern ersetzt der Treiber die Werte und behandelt die Quotierung.

Diese Abfrage hat auch einige Anforderungen. Ich hoffe, Sie führen dies in Ihrer Datenbank aus, bevor Sie sie hier verwenden, da es möglicherweise keine Ergebnisse gibt.