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

I’m new in using PHP. I made something simple to connect to MySQL and select a database:

$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());

When I tested it, I got a successfully-established connection and the following warning:

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

Why did this happen? How can I fix it?

Enquirer: Merna


Solution #1:

You are using both mysqli and mysql simply change






When you use mysql_select_db you are supposed to use mysql api and so you have to exatibilish connection to database with mysql sintax mysql_connect Reference

Mysql is now deprecated so it’s correct either to use mysqli or PDO

Respondent: Fabio

Solution #2:

In addition to using mysqli_* consistently (as mentioned in Fabio’s answer), there is an additional problem (and a suggestion):

  • While the parameter order in mysql_select_database are database name, connection, the order of parameters in mysqli_select_db are connection, database name.

    mysqli_select_db($conn, $db_name);
  • As a suggestion, mysqli_connect includes an optional fourth parameter to connect to a particular database. This would allow you to avoid calling mysql_select_db altogether.

    $conn = mysqli_connect($db_host, $db_admin, $db_pass, $db_name)
        or die(mysqli_connect_error());
Respondent: Chris Forrence

Solution #3:

You have to change mysql_select_db to mysqli_select_db as pointed out by Fabio but you’ll get an error

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

For someone experiencing this, reverse the order of parameters, like for in this case give

$selected_db = mysqli_select_db($conn, $db_name)
Respondent: lu5er

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Most Popular

To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy