<?php
// This part of the code is unrelated to the article content, just an example
echo "Welcome to this PHP tutorial.";
?>
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.
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.
<?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>();
?>
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.
Related Tags:
mysqli