在PHP中连接MySQL数据库的最佳方法

时间:2009-11-02 09:07:36

标签: php mysql mysqli

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');

哪一个更好,为什么?

6 个答案:

答案 0 :(得分:4)

无论你喜欢哪一个。我会使用OOP接口与我的应用程序的其余部分保持一致,因为这就是我使用MySqli的方式。另外,在我看来,OOP界面方式更清晰(至少在美学上)。

答案 1 :(得分:2)

您将处理多个数据库吗?如果是这样,最好不要在构造函数中设置database_name。否则,没问题。除了你在第二个中设置字符集的事实,我认为没有太大区别。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

使用mysqli扩展连接使您能够使用较新的MySQL功能,例如事务查询和参数化查询,这些功能使用较旧的mysql扩展无法使用。

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

答案 4 :(得分:0)

这两种方法都是使用mysqli扩展的有效方法。第一个是面向对象的接口,第二个是过程接口。它们是等价的,只是一个偏好问题。请参阅PHP mysqli documentation

答案 5 :(得分:0)

在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数据库。