mysql_select_db()期望参数2是资源,给定对象

时间:2013-04-14 17:53:47

标签: php mysql

我是使用PHP的新手。我做了一些简单的事情来连接到MySQL并选择一个数据库:

$conn = mysqli_connect($db_host, $db_admin, $db_pass) or die(mysql_error());
// these variables are previously declared and initialized 

$selected_db = mysql_select_db($db_name, $conn) or die(mysql_error());

当我测试它时,我得到了一个成功建立的连接和以下警告:

mysql_select_db() expects parameter 2 to be resource, object given 

为什么会这样?我该如何解决?

3 个答案:

答案 0 :(得分:19)

您正在使用mysqlimysql只需更改

mysql_select_db()

使用

mysqli_select_db

参考 http://php.net/manual/en/mysqli.select-db.php

updated

当你使用mysql_select_db时,你应该使用mysql api,所以你必须使用mysql sintax mysql_connect Reference

来扩展与数据库的连接

现在不推荐使用Mysql,因此使用mysqliPDO

是正确的

答案 1 :(得分:0)

除了始终如一地使用mysqli_ *(如Fabio's answer中所述)之外,还有一个问题(和建议):

  • 虽然mysql_select_database中的参数顺序是数据库名称,连接,但mysqli_select_db中的参数顺序是连接,数据库名称。

    mysqli_select_db($conn, $db_name);
    
  • 作为建议,mysqli_connect包含连接到特定数据库的可选第四个参数。这样可以避免完全调用mysql_select_db

    $conn = mysqli_connect($db_host, $db_admin, $db_pass, $db_name)
        or die(mysqli_connect_error());
    

答案 2 :(得分:0)

您必须按照mysql_select_db的指示将mysqli_select_db更改为Fabio,但您会收到错误

mysqli_select_db() expects parameter 1 to be mysqli, string given

对于遇到这种情况的人,请颠倒参数的顺序,例如在这种情况下给出

$selected_db = mysqli_select_db($conn, $db_name)