/ / Błąd krytyczny: wywołanie zapytania funkcji składowej () na obiekcie nie będącym obiektem w [duplicate] - mysqli, php, fatal-error

Błąd krytyczny: wywołanie zapytania funkcji składowej () na obiekcie nie będącym obiektem w [duplicate] - mysqli, php, fatal-error

Możliwe duplikaty:
Wywołanie kwerendy funkcji składowej () na obiekcie nie będącym obiektem zapytania ()?

Dostaję

Błąd krytyczny: Wywołanie kwerendy funkcji składowej () na błędzie nieobiektowym podczas próby pobrania liczby wierszy z tabeli Konto w mojej bazie danych. Oto kod:

$link = mysqli_connect("localhost", "Username", "Password", "Database");
if ($result = $mysqli->query($link, "SELECT * FROM Accounts WHERE Username=" . $_POST["EmailTbx"] . " AND Password=" . $_POST["PasswordTbx"] . "")){
$field_cnt = $result->field_count;
echo $field_cnt;
$result->close();
}
$mysqli->close();

Odpowiedzi:

-2 dla odpowiedzi № 1

Wygląda na to, że zmieniliście swoje zmienne. Wypróbuj następujące rozwiązania (nie zapobiegaj wstrzyknięciu):

$link = mysqli_connect("localhost", "Username", "Password", "Database");
if ($result = $link->query("SELECT * FROM Accounts WHERE Username="{$_POST["EmailTbx"]}" AND Password="{$_POST["PasswordTbx"]}"")){
$field_cnt = $result->field_count;
echo $field_cnt;
$result->close();
}
$mysqli->close();

Spróbuj z ucieczką:

$link = mysqli_connect("localhost", "Username", "Password", "Database");
$email = mysqli_real_escape_string($link, $_POST["EmailTbx"]);
$pass = mysqli_real_escape_string($link, $_POST["PasswordTbx"]);
if ($result = $link->query("SELECT * FROM Accounts WHERE Username="{$email}" AND Password="{$pass}"")){
$field_cnt = $result->field_count;
echo $field_cnt;
$result->close();
}
$mysqli->close();

1 dla odpowiedzi nr 2

Twój obiekt MySQLi to $link tutaj. Nie $mysqli. Więc albo użyj

$link->query()

lub

mysqli_query($link, ...)

To jest wersja prokuratorska