Aantal rijen ophalen in MySQLI

Ik probeer het aantal rijen in mijn vraag te krijgen maar het houdt me deze fout

Proberen om de eigenschap van niet-object op regel 15 te krijgen.

<?php require_once("./includes/Utilities.php") ;?>
<?php require_once("./includes/db_connection.php");?>
<?php 
    if(isset($_POST['submit'])){
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);
        $conf_pass = trim($_POST['conf_password']);
        $email = trim($_POST['email']);
        require_once('./includes/CheckPassword.php');
        $check_pwd = new Db_CheckPassword($password);
        $check_pwd =$check_pwd->check();
        require_once('./includes/CheckUsername.php');
        $sql = "SELECT * FROM accounts WHERE username = {$username}";
        $result = $conn->query($sql);
        $numRows = $result->num_rows;
    }
?>

Dit is specifiek regel 15

$numRows = $result->num_rows;

Waarom retourneert het een fout?

0
Terwijl u MySQLi gebruikt, gebruikt u geen voorbereide uitspraken! wat leidt tot hetzelfde type SQL-injectie-kwetsbaarheid geïntroduceerd door oudere databasestuurprogramma's!
toegevoegd de auteur Madara Uchiha, de bron
Ik heb niet gezegd opgeslagen procedures, ik zei prepared statements
toegevoegd de auteur Madara Uchiha, de bron
Het is extreem aanbevolen om voorbereide instructies te gebruiken. Het geeft je een prestatieverbetering bij het uitvoeren van meerdere query's in een batch, en het ontsnapt ook automatisch aan variabelen die je invoert.
toegevoegd de auteur Madara Uchiha, de bron
Wat is het verschil tussen opgeslagen procedures mysqli dan het uitvoeren van een query?
toegevoegd de auteur KyelJmD, de bron
Sorry, het was een typfout, dus dat zijn hun verschillen? wordt het ten zeerste aanbevolen om voorbereide verklaringen te gebruiken? waarom?
toegevoegd de auteur KyelJmD, de bron

2 antwoord

Omdat de gebruikersnaam niet is aangehaald.

Probeer dit:

$sql = "SELECT * FROM accounts WHERE username = '{$username}'";
3
toegevoegd

U controleert niet of uw vraag succesvol was, dus $ result kan FALSE bevatten.

0
toegevoegd