Mysql
 sql >> Base de données >  >> RDS >> Mysql

la variable pdo n'est pas définie dans la fonction mysql

L'envoi d'une connexion PDO en tant que paramètre est en fait la seule façon sensée de le faire. Il est en effet bon de savoir que vous pourriez utiliser le global mot-clé, mais la meilleure façon d'écrire du code qu'il est possible de maintenir est d'indiquer explicitement les dépendances, et indication de type eux

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) {}

En savoir plus ici à propos de PDO et des déclarations préparées. Remarquez comment j'ai profité des paramètres nommés pour m'assurer qu'aucune injection sql n'est possible à partir de ce code.