Mysql
 sql >> Database >  >> RDS >> Mysql

La variabile pdo non è definita nella funzione mysql

L'invio di una connessione PDO come parametro è in realtà l'unico modo sano per farlo. È davvero bello sapere che potresti usare il global parola chiave, ma il modo ottimale per scrivere codice che è possibile mantenere è indicare esplicitamente le dipendenze e suggerimento del tipo loro

function mailExists (PDO $pdo, $email)  {
    $sql = 'SELECT * FROM users WHERE email = :email';
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':email', $email, PDO::PARAM_STR);
    $stmt->execute();
    return $stmt->rowCount() > 0;
}
if (mailExists($pdo, $email) {}

Leggi di più qui sulla DOP e sulle dichiarazioni preparate. Nota come ho sfruttato i parametri denominati per assicurarmi che non sia possibile alcuna iniezione di sql da questo codice.