我最近升级了我的服务器,现在我试图将所有内容从MySQL转换为MySQLi,而且我遇到了一些困难。
我一直收到这个错误:
PHP Warning: mysqli_select_db() expects exactly 2 parameters
有人可以指导我正确的方向,谢谢!
这是我在PHP类中的旧代码:
class Db {
function __construct($app = ''){
// Get the main settings from the array we just loaded
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db = 'db_name';
// Connect to the database
$this->link = mysqli_connect($host, $user, $pass);
mysqli_select_db($db);
register_shutdown_function(array(&$this, 'close'));
}
function query($query){
if($query) return @mysqli_query($query, $this->link);
else return false;
}
function fetchArray($result){
if($result) return mysqli_fetch_array($result, mysqli_ASSOC);
else return false;
}
function queryFetch($query){
if($query) $result = mysqli_query($query, $this->link);
if($result)
return mysqli_fetch_array($result, mysqli_ASSOC);
else
return false;
}
function close(){
mysqli_close($this->link);
}
}
答案 0 :(得分:2)
@mysqli_query($query, $this->link)
这里的连接首先出现而不是第二个;使用mysqli_
API而不是mysql_
API的顺序不同。另外,在测试/开发过程中删除@
,它是一个错误抑制器。
mysqli_select_db($db);
需要数据库连接并作为第一个参数。
这些都在手册中:
注意:您可能会遇到可变范围问题,因此如果是这种情况,则需要在方法内部传递连接。
使用错误处理: