php pop(PHP PDO 简单教程)

wufei123 发布于 2023-10-14 阅读(741)

php教程入门

PHP 5.5 版本之前,我们有用于访问 MySQL 数据库的 mysql_ 命令,但由于安全性不足,它们最终被弃用mysql_ 的弃用带来了访问数据库的两种主要方法:mysqli 和 教程PDO 库-- Rishabh Kandari(作者)

php pop(PHP PDO 简单教程)

大约 80% 的 Web 应用程序由 PHP 提供支持类似地,SQL 也是如此PHP 5.5 版本之前,我们有用于访问 MySQL 数据库的 my教程sql_ 命令,但由于安全性不足,它们最终被弃用弃用这件事是发生在 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; $user = root; $pass = root; $charset = utf8mb4; $d教程sn = "mysql:host=$host;dbname=$db;charset=$charset"; $conn = new PDO($dsn, $user, $pass);。

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

来调整端口号最后,你可以创建一个 PDO 类的实例,我使用了 $conn 变量,并提供了 $dsn、$user、$pass参数如果你遵循这些步骤,你现在应该有一个名为 $conn 的对象,它是 PDO教程 连接类的一个实例。

现在是时候进入数据库并运行一些查询一个简单的 SQL 查询现在让我们运行一个简单的 SQL 查询$tis = $conn->query(SELECT name, age FROM 教程students); while ($row = $tis->fetch()) { echo $row[name]."\t"; echo教程 $row[age]; echo "

"; }。

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

$row 变量来从 $tis 对象中获取内容,最后通过调用列名来显示每一行很简单,不是吗?现在让我们来看看预处理语教程句预处理语句预处理语句是人们开始使用 PDO 的主要原因之一,因为它提供了可以阻止 SQL 注入的语句。

有两种基本方法可供使用,你可以使用位置参数或命名参数位置参数让我们看一个使用位置参数的查询示例$教程tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)"); $tis->bindValue(1,mike教程); $tis->bindValue(2,22); $tis->execute();。

在上面的例子中,我们放置了两个问号,然后使用 bindValue() 函数将值映射教程到查询中这些值绑定到语句问号中的位置我还可以使用变量而不是直接提供值,通过使用 bindParam() 函数相同例子如下:。

$name=Rishabh; $age=20; $tis =教程 $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)"); $tis->bindParam(1,$name); 教程 $tis->bindParam(2,$age); $tis->execute();

命名参数命名参数也是预处理语句,它将值/变量映射到查询中的命名位置由于没有位置绑定,因此教程在多次使用相同变量的查询中非常有效$name=Rishabh; $age=20; $tis = $conn->prepare("INSERT INTO STUDENTS(name, a教程ge) values(:name, :age)"); $tis->bindParam(:name, $name); $tis->bindParam(:age, $age教程); $tis->execute();。

你可以注意到,唯一的变化是我使用 :name 和 :age 作为占位符,然后将变量映射到它们冒号在参数之前使用,让 PDO 知道该位置是一个变量教程,这非常重要你也可以类似地使用 bindValue() 来使用命名参数直接映射值。

获取数据PDO 在获取数据时非常丰富,它实际上提供了许多格式来从数据库中获取数据你可以使用 PDO::FETCH_AS教程SOC 来获取关联数组,PDO::FETCH_NUM 来获取数字数组,使用 PDO::FETCH_OBJ。

来获取对象数组$tis = $conn->prepare("SELECT * FROM STU教程DENTS"); $tis->execute(); $result = $tis->fetchAll(PDO::FETCH_ASSOC);。

你可以看到我使用了 fetc教程hAll,因为我想要所有匹配的记录如果只需要一行,你可以简单地使用 fetch现在我们已经获取了数据,现在是时候循环它了,这非常简单foreach ($result as $lnu){ 教程 echo $lnu[name]; echo $lnu[age]."

"; }。

你可以看到,因为我请求了关联数组,所以我正在按名称访问各个成员虽然在定义希望如何传输递数据方面没有教程要求,但在定义 $conn 变量本身时,实际上可以将其设置为默认值你需要做的就是创建一个 $options。

数组,你可以在其中放入所有默认配置,只需在 $conn 变量中传递数组即可$options 教程= [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]; $conn = new PDO($ds教程n, $user, $pass, $options);。

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

pdo-tutorial-basics作者:Rishabh Kandari 选题:lujun9972 译者:MjS教程even 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。