Question

Selon la documentation PDO , vous pouvez enregistrer les informations de connexion à la base de données. les détails dans php.ini, loin du fichier php (exemple 3). Mais cela n'explique pas comment stocker le nom d'utilisateur et le mot de passe, uniquement la base de données et l'hôte. Comment feriez-vous cela?

C'est la méthode utilisée dans la documentation:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"

J'ai essayé d'ajouter le nom d'utilisateur et le mot de passe à l'hôte, mais il n'aime pas: entre le nom d'utilisateur et le mot de passe, et il ne reconnaît pas une adresse contenant uniquement un nom d'utilisateur en tant qu'adresse réelle:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=username:password@localhost"

J'ai également essayé de mettre le nom d'utilisateur et le mot de passe sous forme d'arguments distincts, mais ce n'est pas le cas.

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost;username:username;password:secret"
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost;uid:username;pwd:secret"
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost;UID:username;PWD:secret"
Était-ce utile?

La solution

Selon la documentation, cela n’est pas possible. Et probablement pas voulu. Si vous regardez la méthode PDO __ construct () , il faut 3 arguments: un DSN (qui peut être un nom pour un pdo.dsn.name défini dans votre php. ini), un nom d'utilisateur et un mot de passe.

Autres conseils

Vous pouvez stocker le nom d'utilisateur et le mot de passe de la base de données dans une variable d'environnement, qui est ensuite disponible dans le script PHP dans le superglobal $ _ ENV .

AFIACT, vous ne pouvez pas définir une variable d’environnement à partir de php.ini, mais vous pouvez aussi la définir comme suit: apache config, y compris dans un fichier .htaccess. Ex.

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

Ensuite, dans votre PHP, vous pouvez utiliser:

$db = new PDO('mydb',

Vous pouvez stocker le nom d'utilisateur et le mot de passe de la base de données dans une variable d'environnement, qui est ensuite disponible dans le script PHP dans le superglobal $ _ ENV .

AFIACT, vous ne pouvez pas définir une variable d’environnement à partir de php.ini, mais vous pouvez aussi la définir comme suit: apache config, y compris dans un fichier .htaccess. Ex.

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

Ensuite, dans votre PHP, vous pouvez utiliser:

<*>

Vous pouvez également définir le DSN en tant que variable d'environnement afin de tout conserver.

ENV['mysql_username'],

Vous pouvez stocker le nom d'utilisateur et le mot de passe de la base de données dans une variable d'environnement, qui est ensuite disponible dans le script PHP dans le superglobal $ _ ENV .

AFIACT, vous ne pouvez pas définir une variable d’environnement à partir de php.ini, mais vous pouvez aussi la définir comme suit: apache config, y compris dans un fichier .htaccess. Ex.

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

Ensuite, dans votre PHP, vous pouvez utiliser:

<*>

Vous pouvez également définir le DSN en tant que variable d'environnement afin de tout conserver.

ENV['mysql_password']);

Vous pouvez également définir le DSN en tant que variable d'environnement afin de tout conserver.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top