我正在创建几个PHP脚本。我是否必须始终为同一数据库和表的每个脚本插入主机,用户名,密码等?有没有办法只用一行或其他方式进行参考?反正有没有隐藏这个信息?
$host="XXXXXXXXX";
$username="XXXXX";
$password="XXXXX";
$db_name="XXXXXX";
$tbl_name="XXXXX";
mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
答案 0 :(得分:3)
虽然执行了PHP文件,因此从Web上看不到源代码,但意外的错误配置可能会改变这种情况。您可以将数据库配置放在wbeserver文档根目录之外的单独文件中,并使用PHP的require
命令将其包含在其他脚本中。
但是,根据PHP配置,PHP脚本可能无法访问docroot之外的文件,但有很多方法可以解决这个问题。 This SO question详细讨论了这些问题
答案 1 :(得分:1)
如果您不想将凭据放在php文件中,那么您可以将它们放在php.ini配置文件中。
mysql.default_host = "localhost"
mysql.default_user = "user"
mysql.default_password = "pass"
然后在php源代码中:
<?php
$connect_db = mysql_connect();
$err = mysql_error();
if ($err != "")
{
echo "Error connecting to database: $err";
die;
}
if (!mysql_select_db("mydomain_com_test", $connect_db))
{
echo mysql_error()."<br/>";
die;
}
$sql = "SELECT NOW()";
$rows = mysql_query( $sql );
?>