PHP 入门 - 8.数据库

本文介绍了PHP中访问数据库的方法,包括使用PDO和MySQLi扩展。PDO提供了一个数据库抽象层,方便数据库迁移,但可能牺牲执行效率。MySQLi是MySQL的改进扩展,直接针对MySQL操作。此外,还讨论了文件操作和NoSQL数据库MongoDB的使用。
摘要由CSDN通过智能技术生成

访问数据库

在 PHP 中访问数据有两种方法:

  • 使用数据库特定的拓展
  • 使用不受数据库约束的 PDO ( PHP 数据对象)库

如果使用数据库特定的扩展,你的代码会和你所使用的数据库密切相关。也就是说你先把数据库从 MySQL 迁移到 PostgreSQL ,会引起代码的重大改动。而 PDO ,用一个抽象层为你隐藏了数据库特定的函数,因此在数据库系统间进行迁移,改变程序或 php.ini 文件中的一行代码这么简单。但是这种可移植性也是有代价的。使用 PDO 的代码会比使用原生数据库特定扩展的代码在执行速度上慢一点。

需要注意的是,抽象层并不能保证你的 SQL 语句是真正可移植的。如果你的应用使用了任何非泛型的 SQL ,那么在数据库迁移时你不得不对 SQL 语句进行重大改造。

PDO ( PHP 数据对象)

连接

$db = new PDO($dsn, $username, $password);

$db = new PDO("mysql:host=localhost;bdname=text", "username", "password");

数据库交互

使用 query() 函数

$db = new PDO("mysql:host=localhost;dbname=laravelblog", 'root', 'root');

$result = $db->query("select * from users");

foreach($result as $row){
   
    print_r($row);
}

$result = null; // 释放结果集对象

预处理语句

先使用预处理函数 prepare() ,在运行执行函数 execute()

$db = new PDO("mysql:host=localhost;dbname=laravelblog", 'root', 'root');

$result = $db->prepare("select * from users");
$result->execute();

while ($row = $result->fetch()) {
   
  print_r($row);
}

$result = null; // 释放结果集对象

利用占位符来进行重复插入

$db = new PDO("mysql:host=localhost;dbname=laravelblog", 'root', 'root');

$statement = $db->prepare("insert into posts (title, body) values (:title, :body)");
$statement->execute([
  'title' => 'What is PHP?',
  'body' => 'best language'
]);

$db = null;

也可以使用位置占位符(不命名),用 ? 标志。

$db = new PDO("mysql:host=localhost;dbname=laravelblog", 'root', 'root');

$statement = $db->prepare("insert into posts (title, body) values (?, ?)");
$statement->execute([
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值