php PDO 使用方法详解_PHP教程
本文章来给各位同学详细介绍关于php PDO 使用方法详解,欢迎各位同学进入参考,有需要了解的朋友可收藏本文章。
PDO::exec
返回的是int类型,表示影响结果的条数。
PDOStatement::execute
返回的是boolean型,true表示执行成功,false表示执行失败。
这两个通常出现在:
代码如下 | 复制代码 |
$rs0 = $pdo->exec($sql); |
一般情况下可以用$rs0的值判断SQL执行成功与否,如果其值为false表示SQL执行失败,0表示没有任何更改,大于0的值表示影响了多少条记录。
但是$rs1只能返回SQL执行成功与否,如果需要获取影响的记录数需要使用$pre->rowCount();
我个人喜欢使用 MySQL,所以我的 extensions.ini 中有这二行
extension=pdo.so
extension=pdo_mysql.so
接著在程式中,我们需要宣告 PDO ?⒍?墓δ?/p>
代码: [选择]
代码如下 | 复制代码 |
define('DB_NAME','test'); |
文中的使用常数设定是我个人的习惯,各位不用像我这?麻烦
当像上面的操作,$dbh 本身就是代表了PDO的连线了
那要怎?使用PDO呢?
第一式 懒人法 query
什?都不用想,像平常一样的使用 query 的函式
代码: [选择]
代码如下 | 复制代码 |
$sql = 'select * from test'; |
第二式 自动带入法 prepare
我个人使用PDO后,偏好利用 prepare 的函式来进行作动
prepare 的好处是可以先写好 SQL 码,并且在稍后自动带入我们要的资料
这?我想最大的好处是比起直接利用 query 可以减少许多安全性的问题
首先,我们利用 prepare 进行 SQL 码的设定,在利用bindparm 来进行设定的动作
代码: [选择]
代码如下 | 复制代码 |
$sth = $dbh->prepare('update db set zh_CN= :str where SN=:SN'); |
请注意文中的 :str 及 :SN,当我们利用 bindParam的函式,可以利用 :word 来指定系统需要套用的部份,像是我们利用 :str 及 :SN 来指定
而实际的内容,就靠bindParam还可以指定我们要输入的型态。
首先我们先看 :str 的指定,:str 由於我确定资料是属於文字,因此利用 PD::PARAM_STR 来告诉程式“这个是字串哟”,并且给一个范围,也就是长度是12个位元。
我们也可以不要那?复杂,像 :SN ,虽然也是用 bindParam 来指定,但是我们省略了型态及长度,PHP 会用该变数预设的型态来套用。
最后呢,就是利用 $sth->execute(); 来进行执行的动作。
基本上不难,甚至可以说很简单呢!
如果你有大量需要重复套用的资料,你就可以拼了命的重新利用 bindParam 来指定,比如我的 :str 及 :SN 如果有十笔资料,我也可以这样子直接新增到资料库
代码: [选择]
代码如下 | 复制代码 |
$sth = $dbh->prepare('insert into db ("zh_CN","zh_TW")values(:str , :SN'); |
甚至强者如我朋友... 把所有可能的 SQL 全写在一个档案?面,后来的过程SQL的部份就变成全用变数带进去了!
反正资料可以用现成的方式套用嘛!
那,如果利用 prepare 的方式来 select ,关键字当然也可以像上面的方式利用 :word 来指定
代码: [选择]
代码如下 | 复制代码 |
$sth = $dbh->prepare('select * from db where SN = :SN'); |
这?新出现的是 fetch,跟mysql_fetch_row() 的意思差不多
但是在 fetch() 中我们发现多了一个 PDO::FETCH_ASSOC 这个东西
fetch() 提供了许多获取资料的方式,而 PDO::FETCH_ASSOC 指的就是传回下一笔资料的栏位名及值啦
比如上例,利用 $meta 来取得 fetch 传回的资料,此时
$meta 的元素名称就是资料库的栏位名称,而内容当然就是值本身
这个跟你利用 mysql_fetch_row() 时不一样,因为除了栏位名称,mysql_fetch_row() 还会依照顺利
将元素名称除了栏位外在多给予一个以序号的方式为基础的元素,那难道 PDO 没有吗?
当然有,只要将 PDO::FETCH_ASSOC 改为 PDO::FETCH_BOTH,那用法就跟 mysql_fetch_row() 没什?俩样了。
如何除错
除错是所有程式设计师中心中永远的痛,我们使用 PDO 要如何除错呢?
其实 PDO 已经提供了二个非常方便的函式
errorInfo() 及 errorCode()
用法也是世界简单,每当我们利用 execute() 执行后,如果有错误
那 errorInfo() 及 errorCode() 中就会有内容
我们就可以这样子做啦....
代码: [选择]
代码如下 | 复制代码 |
$sth = $dbh->prepare('select * from db where SN = :SN'); |
而 $sth->errorInfo() 会是一个阵列,这个阵列有三个值
0 为SQLSTATE error code
1 为你所使用的 Driver 所传回的错误码
2 为你所使用的 Driver 所传回的错误讯息

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
