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

Comment puis-je échapper des caractères spéciaux dans une chaîne de connexion PDO ?

Si pour une raison étrange vous devez le faire, n'utilisez pas le dbname paramètre dans le DNS. Utilisez plutôt votre pilote de base de données pour le sélectionner pour vous :

$dbh->query('use "newdatabase"'); // for mysql.

De cette façon, vous avez la possibilité de joindre le nom de la base de données avec " , vous pouvez donc le nommer quel que soit le pilote permet . Pour MySQL pour ce scénario spécifique, c'est le " caractère, mais cela ne signifie pas que c'est différent pour PostgreSQL ou Firebase.

Mais cette méthode n'est pas à l'épreuve des balles, elle permet uniquement à la bibliothèque PDO d'analyser le DSN aussi normalement que je ne m'y attends la bibliothèque PDO pour faire face à cette situation inhabituelle car son seul but est d'interagir avec autant de pilotes que possible.

Les allocations spécifiques au conducteur ne doivent pas faire partie du PDO, vous devez donc vraiment demander cela au conducteur, de cette façon, vous pouvez également vérifier si la requête ne s'exécute pas.