sql >> Databáze >  >> RDS >> Mysql

PHP/MYSQL Retrieve Name na základě jiného kritéria

Za prvé, NIKDY nezískávejte heslo z databáze, to je jen extrémně špatná praxe.

Za druhé, chcete přijmout uživatele jako správného pouze v případě, že je vrácen POUZE jeden řádek.

nakonec bindColumn je to, co hledáte.

<?php
function verify_Username_and_Pass($un, $pwd) {
    $query = "SELECT `First Name`, Username
              FROM table
              WHERE Username = :un AND Password = :pwd";
    // Don't limit the query to only one, if there is a chance that you can
    // return multiple rows, either your code is incorrect, bad data in the database, etc...

    $stmt = $this->conn->prepare($query);
    $stmt->bindParam(':un', $un);
    $stmt->bindParam(':pwd', $pwd);
    $stmt->execute();

    // Only assume proper information if you ONLY return 1 row.
    // Something is wrong if you return more than one row...
    if ($stmt->rowCount() == 1) {
        // User exist
        $stmt->bindColumn('First Name', $firstName);
        $stmt->bindColumn('Username', $username);
        // You can now refer to the firstName and username variables.
        return true;
        $stmt->close();
    } else {
        // User doesn't exist
        return false;
        $stmt->close();
    }
}
?>

To by vám mělo fungovat.



  1. Uložená procedura a oprávnění – stačí EXECUTE?

  2. Existuje nějaký trik, který umožní MySQL ignorovat koncovou čárku v klauzuli SET příkazu UPDATE?

  3. Hledání textu v uložené proceduře na serveru SQL

  4. Zobrazuje se Došlo k pokusu o načtení programu s chybou nesprávného formátu v projektu replikace SQL Server