/ / Fatálna chyba: Volať na dotaz funkcie člena () na non-object v [duplicate] - mysqli, php, fatal-error

Smrteľná chyba: Vyvolanie dotazu funkcie člena () na non-object v [duplicate] - mysqli, php, fatal-error

Možné duplicitné:
Zavolajte na dotaz funkcie člena () na non-object v dotaze ()?

Dostávam

Smrteľná chyba: Vyvolanie dotazu na funkcie člena () na ne-objekt Chyba pri pokuse získať počet riadkov z tabuľky Účtu v mojej databáze. Tu je kód:

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

odpovede:

-2 pre odpoveď č. 1

Zdá sa, že máte premenené vaše premenné. Vyskúšajte nasledujúce (nebráni injekcii):

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

Vyskúšajte nasledujúce úniky:

$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 pre odpoveď č. 2

Váš objekt MySQLi je $link tu. nie $mysqli, Takže buď použite

$link->query()

alebo

mysqli_query($link, ...)

Toto je procesná verzia