質問

PDOドキュメントによると、データベースログインを保存できます。 phpファイルから離れたphp.iniの詳細(例3)。ただし、ユーザー名とパスワードの保存方法については説明せず、データベースとホストについてのみ説明します。どうしますか?

これはドキュメントで使用されている方法です:

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

ホストにユーザー名とパスワードを追加しようとしましたが、ユーザー名とパスワードの間では気に入らず、ユーザー名のみが実際のアドレスとして認識されることはありません:

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

また、ユーザー名とパスワードを別々の引数として配置しようとしましたが、そうではありません。

[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"
役に立ちましたか?

解決

ドキュメントによると、これは不可能です。そしておそらく望んでいません。 PDO __ construct()メソッドを見ると、3つの引数が必要です。DSN(phpで定義されている pdo.dsn.name の名前)。 ini)、ユーザー名とパスワード。

他のヒント

DBユーザー名とパスワードを環境変数に保存できます。環境変数は、 $ _ ENV スーパーグローバルのPHPスクリプト内で使用できます。

AFIACT、php.iniから環境変数を設定することはできませんが、.htaccessファイルを含むapache configに設定することはできます。例:

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

次に、使用できるPHPで:

$db = new PDO('mydb',

DBユーザー名とパスワードを環境変数に保存できます。環境変数は、 $ _ ENV スーパーグローバルのPHPスクリプト内で使用できます。

AFIACT、php.iniから環境変数を設定することはできませんが、.htaccessファイルを含むapache configに設定することはできます。例:

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

次に、使用できるPHPで:

<*>

DSNを環境変数として配置して、すべてをまとめることもできます。

ENV['mysql_username'],

DBユーザー名とパスワードを環境変数に保存できます。環境変数は、 $ _ ENV スーパーグローバルのPHPスクリプト内で使用できます。

AFIACT、php.iniから環境変数を設定することはできませんが、.htaccessファイルを含むapache configに設定することはできます。例:

SetEnv mysql_username dbuser
SetEnv mysql_password dbpass

次に、使用できるPHPで:

<*>

DSNを環境変数として配置して、すべてをまとめることもできます。

ENV['mysql_password']);

DSNを環境変数として配置して、すべてをまとめることもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top