/ / Schwerwiegender Fehler: Aufruf einer Memberfunktion query () auf einem Nicht-Objekt in [duplicate] - mysqli, php, fataler Fehler

Schwerwiegender Fehler: Aufruf einer Memberfunktion query () auf einem Nicht-Objekt in [duplicate] - mysqli, php, fatal-error

Mögliche Duplikate:
Aufruf einer Memberfunktion query () für ein Nichtobjekt in query ()?

Ich bekomme die

Schwerwiegender Fehler: Aufruf einer Memberfunktion query () bei einem Nichtobjektfehler, wenn versucht wird, die Zeilenanzahl aus einer Account-Tabelle in meiner Datenbank abzurufen. Hier ist der Code:

$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();

Antworten:

-2 für die Antwort № 1

Es sieht so aus, als hättest du deine Variablen durcheinander gebracht. Versuchen Sie Folgendes (verhindert die Injektion nicht):

$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();

Versuchen Sie Folgendes mit der Flucht:

$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 für die Antwort № 2

Ihr MySQLi-Objekt ist $link Hier. Nicht $mysqli. Also entweder benutzen

$link->query()

oder

mysqli_query($link, ...)

Dies ist die prokudurale Version