如何在php中的MySQL连接字符串中传递变量

时间:2014-11-19 13:56:39

标签: php mysql

我有一个txt文件,其中包含由换行符分隔的登录凭据。我想从该文件中获取数据并根据该设置连接字符串。这是代码。

$db = array(3);
$myFile = "sqlaccess.txt";  
$handle = fopen($myFile, 'r');  
if(!feof($handle))
{
    for($i=0;$i<4;$i++)  
    {  
         $db[$i] = fgets($handle);  
         echo $db[$i];  echo "<br>"; 
    }
}
else
{
     fclose($handle); 
}    
$dbhost = $db[0];
$dbuser = $db[1]; 
$dbpass = $db[2]; 
$dbname = $db[3]; 

echo 命令可以正确显示保存在文件中的所有内容。 现在连接字符串是:

$conn = mysqli_connect($dbhost,$dbuser,$dbpass, $dbname);  

这不起作用。连接失败

但如果我按如下方式对其进行硬编码,则连接成功:

$conn = mysqli_connect('localhost','root','password', 'Newdb');

但硬编码不是一个好习惯。那么我的代码可能出现什么问题?

1 个答案:

答案 0 :(得分:1)

fgets不会从返回的字符串中删除\n,因此您需要自己修剪它们:

$db[$i] = trim(fgets($handle));

或使用file函数替换您的读取循环:

$db = file('sqlaccess.txt');

如果您选择后者,您的代码将简化为:

$myFile = 'sqlaccess.txt';
$db = file($myFile);

$dbhost = $db[0];
$dbuser = $db[1];
$dbpass = $db[2];
$dbname = $db[3];