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');
哪一个更好,为什么?
答案 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扩展无法使用。
答案 4 :(得分:0)
这两种方法都是使用mysqli扩展的有效方法。第一个是面向对象的接口,第二个是过程接口。它们是等价的,只是一个偏好问题。请参阅PHP mysqli documentation。
答案 5 :(得分:0)
在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数据库。