![](/img/trans.png)
[英]What is the best way to connect to and query a MySQL database using PHP?
[英]The best way to connect MySQL database in PHP
PHP中的MySQL连接可以通过两种方式建立:
$mysql = new mysqli('localhost', 'user_name', 'password', 'database_name');
要么
$link = mysqli_connect('localhost', 'user_name', 'password');
mysqli_set_charset($link, 'utf8');
mysqli_select_db($link, 'database_name');
哪个更好,为什么?
你喜欢哪一种。 为了与我的应用程序的其余部分保持一致,我会使用 OOP 接口,因为这就是我使用 MySqli 的方式。 此外,在我看来,OOP 接口方式更简洁(至少在美学上)。
您会处理多个数据库吗? 如果是这样,最好不要在构造函数中设置 database_name。 否则,没有问题。 除了您在第二个字符集中设置字符集这一事实之外,我认为没有太大区别。
使用 mysqli 扩展进行连接使您能够使用较新的 MySQL 功能,例如使用较旧的 mysql 扩展不可用的事务查询和参数化查询。
在 PHP 中连接到MySQL database
的最佳方法是使用PDO driver
, http://php.net/manual/es/book.pdo.php你也有参数化查询, you can avoid SQL injection easily
和其他你可能喜欢的功能,你也可能知道它is prepared to work with object-oriented programming
,这很酷。
PS :PDO也可以用来连接其他类型的SQL数据库,比如SQL Server等。你要学习PDO(很简单),然后你就可以连接多种SQL数据库。
if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
// error: mysqli extension error
exit('...');
}
$connection = mysqli_init();
@mysqli_real_connect($connection, DBHOST,
DBUSER, DBPASS, DBNAME, DBPORT, NULL, MYSQLI_CLIENT_FOUND_ROWS);
if (mysqli_connect_errno() > 0) {
// error: connection error
echo mysqli_connect_error();
exit();
}
// Force UTF-8.
mysqli_query($connection, 'SET NAMES "utf8"');
此示例根据 Drupal6 database.mysqli.inc
这两种方法都是使用 mysqli 扩展的有效方法。 第一个是面向对象的接口,第二个是过程接口。 它们是等效的,这只是一个偏好问题。 请参阅PHP mysqli 文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.