今天跟大家说一下关于PHPPDO的简单教程,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。
大约80%的网络应用程序由PHP支持。同样,SQL也是如此。在PHP 5.5版本之前,我们有mysql_ commands用于访问mysql数据库,但由于缺乏安全性,最终被放弃。
2013年发生在PHP 5.5上,我在2018年写了这篇文章,用的是PHP 5.5版本。mysql_的废弃带来了两种访问数据库的主要方法:MyQLI和PDO库。
虽然MyQLI库是官方指定的,因为MyQLI只能支持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$ dsn=' mysql:host=$ hostdbname=$ dbcharset=$ charset ';$conn=新PDO($dsn,$user,$ pass);
之后,正如您在上面的代码中看到的,我们创建了一个DSN变量,它只是一个用于保存数据库信息的变量。对于那些在外部服务器上运行MySQL的用户,也可以通过提供一个端口=$port_number来调整端口号。
最后,您可以创建一个PDO类的实例。我使用了$conn变量,并提供了$dsn、$user和$pass参数。如果您遵循这些步骤,现在应该有一个名为$conn的对象,它是PDO连接类的一个实例。现在是时候进入数据库并运行一些查询了。
一个简单的 SQL 查询
现在让我们运行一个简单的SQL查询。
$tis=$conn-query('SELECT name,age FROM studies ');while($ row=$ tis-fetch()){ echo $ row[' name ']。\ t ';echo $ row[' age '];echo“br”;}
这是使用PDO运行查询的最简单形式。首先,我们创建了一个名为tis的变量,然后您可以看到我们在创建的$conn对象中使用了查询函数。
然后我们运行一个while循环并创建一个$row变量来从$tis对象中获取内容。最后,我们调用列名来显示每一行。
很简单,不是吗?现在让我们看看预处理语句。
预处理语句
预处理语句是人们开始使用PDO的主要原因之一,因为它提供了可以阻止SQL注入的语句。
有两种基本方法可用,您可以使用位置参数或命名参数。
位置参数
让我们看一个使用位置参数的查询示例。
$ tis=$ conn-准备('插入学生(姓名、年龄)值(?)');$tis-bindValue(1,' Mike ');$tis-bindValue(2,22);$ tis-execute();
在上面的例子中,我们放了两个问号,然后使用bindValue()函数将这些值映射到查询中。这些值绑定到语句问号中的位置。
我也可以通过使用bindParam()函数来使用变量,而不是直接提供值。同样的例子如下:
$ name=' Rishabh$ age=20$ tis=$ conn-准备('插入学生(姓名、年龄)值(?)');$tis-bindParam(1,$ name);$tis-bindParam(2,$ age);$tis-exec
ute();
命名参数
命名参数也是预处理语句,它将值/变量映射到查询中的命名位置。由于没有位置绑定,因此在多次使用相同变量的查询中非常有效。
$name='Rishabh'; $age=20;$tis = $conn->prepare("INSERT 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("SELECT * 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, $user, $pass, $options);
看完上述内容,你们对PHPPDO简单教程是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/36002.html