繁体   English   中英

PHP连接MySQL数据库的最佳方式

[英]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 扩展不可用的事务查询和参数化查询。

看看http://www.php.net/manual/en/book.mysqli.php

在 PHP 中连接到MySQL database的最佳方法是使用PDO driverhttp://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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM