首页 > 作文

详解PHP PDO简单教程

更新时间:2023-04-07 08:24:12 阅读: 评论:0

大约 80% 的 web 应用程序由 php 提供支持。类似地,sql 也是如此。php 5.5 版本之前,我们有用于访问 mysql 数据库的 mysql_ 命令,但由于安全性不足,它们最终被弃用。

弃用这件事是发生在 2013 年的 php 5.5 上,我写这篇文章的时间是 2018 年,php 版本为 7.2。mysql_ 的弃用带来了访问数据库的两种主要方法:mysqli 和 pdo 库。

虽然 mysqli 库是官方指定的,但由于 mysqli 只能支持 mysql 数据库,而 pdo 可以支持 12 种不同类型的数据库驱动程序,因此 pdo 获得了更多的赞誉。此外,pdo 还有其它一些特性,使其成为大多数开发人员的更好选择。你可以在下表中看到一些特性比较:

pdomysqli数据库支持12 种驱动只有 mysql范例oop过程 + oop预处理语句(客户端侧)yesno1命名参数yesno

现在我想对于大多数开发人员来说,pdo 是首选的原因已经很清楚了。所以让我们深入研究它,并希望在本文中尽量涵盖关于 pdo 你需要的了解的。

连接

第一步是连接到数据库,由于 pdo 是完全面向对象的,所以我们将使用 pdo 类的实例。

我们要做的第一件事是定义主机、数据库名称、用户名、密码和数据库字符集。

$host = 'localhost';$db  = 'theitstuff';$ur = 'root';$pass = 'root';$chart = 'utf8mb4';$dsn = "mysql:host=$host;dbname=$db;chart=$chart";$conn = new pdo($dsn, $ur, $pass);

之后,正如你在上面的代码中看到的,我们创建了 dsn 变量,dsn 变量只是一个保存数据库信息的变量。对于一些在外部服务器上运行 mysql 的人,你还可以通过提供一个 port=$port_number 来调整端口号。

最后,你可以创建一个 pdo 类的实例,我使用了 $conn 变量,并提供了 $dsn、$ur、$pass 参数。如果你遵循这些步骤,你现在应该有一个名为 $conn 的对象,它是 pdo 连接类的一个实例。现在是时候进入数据库并运行一些查询。

一个简单的 sql 查询

现在让我们运行一个简单的 sql 查询。

$tis = $conn->query('lect name, age from students');while ($row = $tis->fetch()){ echo $row['name']."\t"; echo $row['age']; echo "<br>";}

这是使用 pdo 运行查询的最简单形式。我们首先创建了一个名为 tis(theitstuff 的缩写 )的变量,然后你可以看到我们使用了创建的 $conn 对象中的查询函数。

然后我们运行一个 while 循环并创建了一个 $row 变量来从 $tis 对象中获取内容,最后通过调用列名来显示每一行。

很简单,不是吗?现在让我们来看看预处理语句。

预处理语句

预处理语句是人们开始使用 pdo 的主要原因之一,因为它提供了可以阻止 sql 注入的语句。

有两种基本方法可供使用,你可以使用位置参数或命名参数。

位置参数

神经

让我们看一个使用位置参数的查询示例。

$tis = $conn->prepare("inrt into students(name, age) values(?, ?)");$tis->bindvalue(1,'mike');$tis->bindvalue(2,22);$tis->execute();

在上面的例子中,我们放置了两个问号,然后使用 bindvalue() 函数将值映射到查询中。这些值绑定到语句问号中的位置。

我还可以使用变量而不是直接提供值,通过使用 bindparam() 函数相同例子如下:

$name='rishabh'; $age=20;$tis = $conn->prepare("inrt into students(name, age) values(?, ?)");$tis->bindpa36计故事ram(1,$name);$tis->bindparam(2,$age);$tis->execute();

命名参数

命名参数也是预处理语句,它将值/变量映射到查询中的命名位置。由于没有位置绑定,因此在多次使用相同变量的查询中非常有效。

$name='rishabh'; $age=20江西先锋软件职业技术学院;$tis = $conn->prepare("inrt into students(name, age) values(:name, :age)");$tis->bindparam(':name', $name);$tis->bindparam(':age', $age);$tis->execute();

你可以注意到,唯一的变化是我使用 :name 和 :age 作为占位符,然后将变量映射到它们。冒号在参数之前使用,让 pdo 知道该位置是一个变量,这非常重要。

你也可以类似地使用 bindvalue() 来使用命名参数直接映射值。

获取数据

pdo 在获取数据时非常丰富,女生英文名字大全它实际上提供了许多格式来从数据库中获取数据。

你可以使用 pdo::fetch_assoc 来获取关联数组,pdo::fetch_num 来获取数字数组,使用 pdo::fetch_obj 来获取对象数组。

$tis = $conn->prepare("lect * from students");$tis->execute();$result = $tis->fetchall(pdo::fetch_assoc);

你可以看到我使用了 fetchall,因为我想要所有匹配的记录。如果只需要一行,你可以简单地使用 fetch。

现在我们已经获取了数据,现在是时候循环它了,这非常简单。

foreach ($result as $lnu){ echo $lnu['name']; echo $lnu['age']."<br>";}

你可以看到,因为我吃什么食物可以降火请求了关联数组,所以我正在按名称访问各个成员。

虽然在定义希望如何传输递数据方面没有要求,但在定义 $conn 变量本身时,实际上可以将其设置为默认值。

你需要做的就是创建一个 $options 数组,你可以在其中放入所有默认配置,只需在 $conn 变量中传递数组即可。

$options = [ pdo::attr_default_fetch_mode => pdo::fetch_assoc,];$conn = new pdo($dsn, $ur, $pass, $options);

这是一个非常简短和快速的 pdo 介绍,我们很快就会制作一个高级教程。如果你在理解本教程的任何部分时遇到任何困难,请在评论部分告诉我,我会在那你为你解答。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-07 08:24:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/865be372de4dcd1e68f5a21cd51fee02.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:详解PHP PDO简单教程.doc

本文 PDF 下载地址:详解PHP PDO简单教程.pdf

标签:你可以   变量   参数   数据库
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图