PHPPDO简单教程是怎样的

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

今天跟大家说一下关于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

(0)

相关推荐

  • Ubuntu6.0.6下的apache2+php5+mysql配置的问题有哪些

    ubuntu,php,mysql"/>以前在ubuntu下配置apache2+php5+ysql超级简单,用新立得一下子就好了今天想换个新版本,配置好了,一打开PHP文件就出现个下载窗口,但HTML文件可以正常执行,WI

    攻略 2021年10月19日
  • 如何看待PHP+MySQL网站架构

    php,mysql"/>目前网站架构一般分成负载均衡层、WEB层和数据库层负载均衡层-- LVS,WEB层--使用了nginxweb服务器,数据库层--我们使用了db集群方案。网站概况 浏览量(PV)独立访客(UV)访问

    攻略 2021年10月19日
  • PHP+MYSQL的分页是怎样操作的

    php,mysql"/>寫php是簡單的事,但是分頁可困擾小弟好一陣子°因為手邊的書好多本...本本看不懂說不清...°這個技巧對行家,雖是簡易的事,但對於一位初學者可會困擾好一陣子°如果您也是初學者,相信本篇可以給您一

    攻略 2021年10月19日
  • 如何优化安 mysql+apache+php

    php,mysql,apache"/>优化安装 mysql+apache+php(转)[@more@]架设 web 服务器的支持当然首选 mysql,apache,php,选定软件后就从本站的下载中心下载了 mysql(

    攻略 2021年10月19日
  • linux9.0+apache+php+mysql安装与配置是怎么样的

    php,linux,mysql"/>, , mysql,apache,php的最新包mysql-standard-5.0.1-alpha-snapshot-pc-linux-i686.tar.gzhttpd-2.0.5

    攻略 2021年10月19日