7

我是使用 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 

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

4

3 回答 3

20

您同时使用两者mysqlimysql只需更改

mysql_select_db()

mysqli_select_db

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

updated

当您使用时,mysql_select_db您应该使用mysqlapi,因此您必须使用 mysql sintax mysql_connect Reference扩展与数据库的连接

Mysql 现在已被弃用,因此使用mysqliPDO

于 2013-04-14T17:55:26.743 回答
0

除了始终如一地使用 mysqli_* (如Fabio 的回答中所述),还有一个额外的问题(和建议):

  • 而参数中的顺序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());
    
于 2016-05-06T21:16:01.857 回答
0

您必须更改mysql_select_dbmysqli_select_db所指出的,Fabio但您会收到错误消息

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

对于遇到这种情况的人,颠倒参数的顺序,就像在这种情况下给

$selected_db = mysqli_select_db($conn, $db_name)
于 2017-04-22T06:02:33.180 回答