PHP PDO 怎么用
日常做网站开发,经常会遇到需要和数据库打交道的情况,不少新手刚接触PHP时,可能会在数据库连接这块踩坑,比如不同数据库切换时要改一堆代码,或者处理数据时出错。这时候,PDO就能帮上大忙。
什么是PDO?
PDO的全称是“PHP数据对象”,你可以把它看成是PHP和数据库之间的一个“通用翻译官”。以前用原生MySQL函数连接数据库时,换个数据库就得重新写一套连接代码,比如从MySQL换到PostgreSQL,好多函数都不一样。但有了PDO,不管是用MySQL、SQLite还是Oracle,只要换个简单的参数就行,不用改核心逻辑,省了不少麻烦。

第一步:快速连接数据库
用PDO第一步是建立连接,就像你要去朋友家,先得找到对方的家门钥匙。举个例子,你有个MySQL数据库,地址是本地的localhost,账号是root,密码是123456,数据库名字叫test,那连接代码可以这么写:
先声明变量存连接信息,然后用PDO的构造函数创建连接。这里要注意,连接时可能会出错,比如密码错了,所以最好加个try-catch来抓错误,就像找钥匙不对时,及时告诉自己哪里出问题,不会直接卡住。
第二步:执行简单的数据库操作
连接好之后,就可以做查数据、存数据这些操作了。比如要查用户表(名叫user)里所有年龄大于18的用户,以前可能要拼字符串写SQL,很容易写错或者被注入攻击。用PDO的预处理语句就安全多了,相当于把数据和SQL指令分开打包,不会被恶意篡改。
举个例子,查数据时,先写好带占位符的SQL,然后把参数传进去,再拿到结果。如果是要存数据,比如新增一个用户,也是用预处理,把用户名和密码的变量替换进去,不用手动拼字符串,既简单又安全。
第三步:处理结果和关闭连接
拿到查询结果后,怎么用呢?比如要把结果输出成数组,PDO有现成的方法,比如fetchAll就能直接把所有数据转成数组,方便你在页面上展示。用完数据库后,不用特意去“关家门”——因为PHP会在脚本结束后自动断开PDO连接。不过如果脚本运行时间长,比如爬数据,也可以手动把连接设成null,提前释放资源。
新手容易踩的小坑
刚开始用PDO,容易忽略几个细节:第一,连接的数据库类型要写对,比如MySQL就是mysql:host=...,SQLite就是sqlite:路径,写错了连不上;第二,预处理语句里的占位符不能少,要是直接拼用户输入的内容,容易被SQL注入;第三,操作完要检查错误,比如执行SQL没反应时,看看是不是SQL写错了,或者权限不够。
其实PDO的核心就是“通用、安全、简单”,不管你是刚学PHP的新手,还是做过网站的老手,用它处理数据库都能省不少心。下次做开发时,不妨试试用PDO代替原生函数,你会发现数据库操作不再那么麻烦。