我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

php数据库连接文件_php连接数据库_链接数据库php

PHP 连接 MySQL 的 API 接口有 3 个,分别是:PHP MySQL 扩展、PHP 扩展和 PHP 数据对象 (PDO)。 下面对以上三种连接方式进行总结,以便在不同场景下选择最优方案。

PHP 的 MySQL 扩展是早期设计和开发的扩展,旨在允许 PHP 应用程序与 MySQL 数据库交互。 MySQL 扩展提供面向过程的接口,专为 .1.3 或更早版本设计。

因此,虽然此扩展可以与.1.3或更高版本的数据库服务器交互,但它不支持更高版本的MySQL服务器提供的某些功能。

由于它既古老又不安全,已经被后来的完全取代了;

PHP 扩展(我们有时称为 MySQL 增强扩展)可用于利用 1.3 或更高版本中的新高级功能。

其特点是:面向对象的接口、语句支持、多语句执行支持、事务支持、增强的调试能力、嵌入式服务支持以及彻底解决SQL注入问题的预处理方法。

不过它也有一个缺点,那就是只支持mysql数据库。 如果你不操作其他数据库,这无疑是最好的选择。

PDO是PHP Data的缩写,是PHP应用程序中的数据库抽象层规范。

PDO 提供了统一的 API 接口,使您的 PHP 应用程序不必关心要连接的具体数据库服务器系统类型。 换句话说,如果使用 PDO 的 API,则可以在需要时无缝切换数据库服务器,例如 From MySQL,只需要更改很少的 PHP 代码。

其功能与JDBC、ODBC、DBI等接口类似。

同样,它也解决了SQL注入问题,具有良好的安全性。 然而,它也有缺点。 不支持某些多语句执行查询(但这种情况很少见)。

官方文章还对三者做了表格对比:

php连接数据库_php数据库连接文件_链接数据库php

从官方结果来看,首先推荐msqli,其次是PDO。 “民间”给出的结果很多都倾向于使用PDO,因为它不具备跨数据库的优势,并且具有读写速度快的特点。

1. PHP和Mysql扩展(该扩展自PHP 5.5.0起已过时,未来将被删除)。 PHP 连接数据库的本机方式是面向过程的。


$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'root',
);
$mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if (!$mysql_conn) {
die("could not connect to the database:\n" . mysql_error());//诊断连接错误
}
mysql_query("set names 'utf8'");//编码转化
$select_db = mysql_select_db($mysql_conf['db']);
if (!$select_db) {
die("could not connect to the db:\n" . mysql_error());
}
$sql = "select * from user;";
$res = mysql_query($sql);
if (!$res) {
die("could get the res:\n" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
print_r($row);
}
mysql_close($mysql_conn);
?>

2.PHP及扩展、过程和面向对象


$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'joshua317',
);
$mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if ($mysqli->connect_errno) {
die("could not connect to the database:\n" . $mysqli->connect_error);//诊断连接错误
}
$mysqli->query("set names 'utf8';");//编码转化
$select_db = $mysqli->select_db($mysql_conf['db']);
if (!$select_db) {
die("could not connect to the db:\n" . $mysqli->error);
}$sql = "select uid from user where name = 'joshua';";
$res = $mysqli->query($sql);
if (!$res) {
die("sql error:\n" . $mysqli->error);
}
while ($row = $res->fetch_assoc()) {
var_dump($row);
}
$res->free();
$mysqli->close();
?>

3.PHP和PDO扩展,面向过程和面向对象


$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'joshua317',
);
$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);//创建一个pdo对象
$pdo->exec("set names 'utf8'");
$sql = "select * from user where name = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, 'joshua', PDO::PARAM_STR);
$rs = $stmt->execute();
if ($rs) {
// PDO::FETCH_ASSOC 关联数组形式
// PDO::FETCH_NUM 数字索引数组形式
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
var_dump($row);
}
}
$pdo = null;//关闭连接
?>

二维码
扫一扫在手机端查看

本文链接:https://by928.com/293.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线