Current Location: Home> Latest Articles> What Is the Basic Syntax of the mysqli::select_db Function? A Detailed Explanation of Its Usage

What Is the Basic Syntax of the mysqli::select_db Function? A Detailed Explanation of Its Usage

gitbox 2025-08-11

<?php // This part of the code is unrelated to the article content, just an example echo "Welcome to this PHP tutorial."; ?>


What Is the Basic Syntax of the mysqli::select_db Function? A Detailed Explanation of Its Usage

In PHP, when using the MySQLi extension for database operations, switching databases is a common requirement. The mysqli::select_db function allows you to change the database associated with the current connection.

  • The parameter: the name of the database to switch to.
  • Returns TRUE on success and FALSE on failure.

Usage Instructions

When you connect to a database using new mysqli(...), you usually specify a default database. However, in some cases, you may need to switch between different databases using the same connection. In such cases, you can call select_db.

Example Code

&lt;?php
</span><span><span class="hljs-comment">// Create a MySQLi connection with the default database as db1</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"root"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"db1"</span></span><span>);

</span><span><span class="hljs-comment">// Check if the connection was successful</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Current database is: db1\n"</span></span><span>;

</span><span><span class="hljs-comment">// Switch to the db2 database</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span>-></span><span><span class="hljs-title function_ invoke__">select_db</span></span><span>(</span><span><span class="hljs-string">"db2"</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Successfully switched to database db2\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Failed to switch database: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span>->error;
}

</span><span><span class="hljs-comment">// You can now perform queries on db2</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT * FROM table_in_db2"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span>) {
    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span> = </span><span><span class="hljs-variable">$result</span></span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span>()) {
        </span><span><span class="hljs-title function_ invoke__">print_r</span></span>($row);
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Query failed: "</span></span> . </span><span><span class="hljs-variable">$mysqli</span></span>->error;
}

</span><span><span class="hljs-variable">$mysqli</span></span>-></span><span><span class="hljs-title function_ invoke__">close</span></span>();
?>

Notes

  • The connection must be successfully established before calling select_db.
  • Switching databases does not close the current connection; it changes the database context used by the connection.
  • If the specified database does not exist, the function returns FALSE, and the error message can be obtained through $mysqli->error.

Summary

mysqli::select_db is the function for switching databases in the MySQLi object-oriented interface. It is suitable for scenarios where you need to operate multiple databases using the same connection. Mastering it can make your database operations more flexible.