Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die pdo-Variable ist in der MySQL-Funktion nicht definiert

Das Senden einer PDO-Verbindung als Parameter ist eigentlich der einzig sinnvolle Weg, dies zu tun. Es ist in der Tat gut zu wissen, dass Sie den global verwenden können Schlüsselwort, aber der optimale Weg, Code zu schreiben, der gewartet werden kann, ist die explizite Angabe von Abhängigkeiten und type-hinting sie

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

Lesen Sie mehr hier über PDO und vorbereitete Erklärungen. Beachten Sie, wie ich benannte Parameter ausgenutzt habe, um sicherzustellen, dass von diesem Code aus keine SQL-Einschleusung möglich ist.