1

過去に私は次のようなsmtを使用しました:

$con = mysql_connect("localhost", "root", "root") or
die("Could not connect: " . mysql_error());

mysql_select_db("xxx");

しかし今、私は誰もがこのようにsmtを使い始めたことに気づきました:

if (!defined('DB_HOST')) define('DB_HOST','localhost');
if (!defined('DB_USER')) define('DB_USER','root');
if (!defined('DB_PASS')) define('DB_PASS','root');
if (!defined('DB_NAME')) define('DB_NAME','xxx');

それらの使用法は何が違うのですか?たとえば、エコー、フィルタリング。

手伝ってくれてありがとう

4

2 に答える 2

3

まあ、どれも間違っていません。それはあなたの選択です。2番目の選択肢は、より良い習慣に似ていると思います。ただし、私のステートメントは、1 つのファイルと他のファイルで定義した場合にのみ有効ですrequire_once。例:

db_config.php:

if (!defined('DB_HOST')) define('DB_HOST','localhost');
if (!defined('DB_USER')) define('DB_USER','root');
if (!defined('DB_PASS')) define('DB_PASS','root');
if (!defined('DB_NAME')) define('DB_NAME','xxx');

query.php:

require_once db_config.php;
$con = mysql_connect(DB_HOST, DB_USER, DB_NAME) or
die("Could not connect: " . mysql_error());
mysql_select_db("xxx");

しかし、なぜ?データベース名、ユーザー、またはパスワードを変更したいとします。mysql_connect("localhost", "root", "root")必要になるたびにコードを持っていると、計画を変更すると、多くの再コーディングが必要になります。しかし、2 番目の方法のようにそれらを 1 か所で定義すると、多くのファイルを書き直す必要がなくなります。

于 2012-12-13T22:07:04.217 に答える
1

複数の場所で接続している場合(設計が不十分)定数を使用すると、すべてのコードを調べて接続を開いたすべての場所を見つける必要なしに、接続構成を編集できる場所が1つあります。

したがって、接続コードは次のようになります。

$con = mysql_connect(DB_HOST, DB_USER, DB_PASS) or
die("Could not connect: " . mysql_error());

mysql_select_db(DB_NAME);
于 2012-12-13T21:59:00.967 に答える