php mysqli使用数组连接
设置数据库连接的最佳做法是什么。使用普通数组还是关联数组?当我使用关联数组时,我有一个错误警告:mysqli::uu construct():(HY000/1044):用户“@'localhost”对第21行C:\xampp\htdocs\cms\includes\db.php中数据库“cms”的访问被拒绝,但它表示im已连接。 我们是有联系的php mysqli使用数组连接,php,mysqli,Php,Mysqli,设置数据库连接的最佳做法是什么。使用普通数组还是关联数组?当我使用关联数组时,我有一个错误警告:mysqli::uu construct():(HY000/1044):用户“@'localhost”对第21行C:\xampp\htdocs\cms\includes\db.php中数据库“cms”的访问被拒绝,但它表示im已连接。 我们是有联系的 <?php //stores the database host,user,pass,name into array /*$db['db_hos
<?php
//stores the database host,user,pass,name into array
/*$db['db_host'] = "localhost";
$db['db_user'] = "root";
$db['db_pass'] = "";
$db['db_name'] = "cms";*/
/*$db = array("db_host"=>"localhost",
"db_user"=>"user",
"db_pass"=>"",
"db_name"=>"cms");*/
//we loop through each of the array
foreach ($db as $key => $value){
define(strtoupper($key), $value);
}
$connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if(isset($connection)){
echo "We are connected!";
}else{
echo "Connection failure!";
}
在您使用错误方法的情况下,isset
仅检查变量是否已设置<代码>$connection
已设置(如果其已连接或未连接。如果连接出现问题,则将包含错误),因此将您的条件更改为:
if(!($connection->connect_error)){ //not containing error
echo "We are connected!";
}else{ //has error
echo "Connection failure!".$connection->connect_error;
}
在这种情况下,只需检查变量是否已设置,就可以使用错误的方法设置<代码>$connection已设置(如果其已连接或未连接。如果连接出现问题,则将包含错误),因此将您的条件更改为:
if(!($connection->connect_error)){ //not containing error
echo "We are connected!";
}else{ //has error
echo "Connection failure!".$connection->connect_error;
}
DB\u主机、DB\u用户、DB\u通行证、DB\u名称
这是什么?您应该像这样在mysqli函数中传递变量<代码>新建mysqli($database、$username、$pass、$DBName)代码>@BilalAhmed这不是真的。您可以使用define(“DB_HOST”、“localhost”)定义常量然后你可以像他在代码中那样使用它。但由于他没有定义任何东西,他应该明确地传入变量(数组值)。@Twinfriends我指出了错误,并仅给出一个解决方案作为建议。是的,我知道有很多方法可以在mysqli中传递参数function@BilalAhmed是的,我知道。我只是想说,如果他使用define,它可以像这样工作。@BilalAhmed我一开始就定义了它,我只是注释掉了它,因为我想知道w/c更好,我也尝试使用关联数组,只是因为我对使用它很好奇。DB_HOST,DB_USER,DB_PASS,DB_NAME
这是什么?您应该像这样在mysqli函数中传递变量<代码>新建mysqli($database、$username、$pass、$DBName)代码>@BilalAhmed这不是真的。您可以使用define(“DB_HOST”、“localhost”)定义常量然后你可以像他在代码中那样使用它。但由于他没有定义任何东西,他应该明确地传入变量(数组值)。@Twinfriends我指出了错误,并仅给出一个解决方案作为建议。是的,我知道有很多方法可以在mysqli中传递参数function@BilalAhmed是的,我知道。我只是想说,如果他使用define,它可以像这样工作。@BilalAhmed我一开始就定义了它,我只是注释了它,因为我想知道w/c更好,我也尝试使用关联数组,只是因为我对使用它很好奇。谢谢你的信息,我已经更改了它,但我仍然收到错误。mysqli::uu construct():(HY000/1044):用户“@'localhost”对第21行C:\xampp\htdocs\cms\includes\db.php中数据库“cms”的访问被拒绝,但它说我已连接。当我尝试使用关联数组时,我遇到了这个错误,但是另一个很好用。你取消对数组的注释了吗?有问题的是,在commentyes中,我尝试取消注释使用关联数组的$db。仍然收到错误。您的密码是否为空?要与数据库连接感谢您提供的信息,我已经对其进行了更改,但我仍然收到错误。mysqli::u construct():(HY000/1044):用户“@'localhost”对第21行C:\xampp\htdocs\cms\includes\db.php中数据库“cms”的访问被拒绝,但它表示我已连接。当我尝试使用关联数组时,我遇到了这个错误,但是另一个很好用。你取消对数组的注释了吗?有问题的是,在commentyes中,我尝试取消注释使用关联数组的$db。仍然收到错误。您的密码是否为空?连接数据库