文档章节

PDO 函数库

deadmau5
 deadmau5
发布于 2014/06/04 10:37
字数 572
阅读 27
收藏 0
点赞 0
评论 0
$dbms    = 'mysql';     //数据库类型 Oracle 用ODI,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数了
$host    = 'locahost'; //数据库主机名
$dbName  = 'dbname';    //使用的数据库
$user    = 'dbusername';      //数据库连接用户名
$pass    = 'password';          //对应的密码
$dsn     = "$dbms:host=$host;dbname=$dbName";

try {
    $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$dbh
//    echo "ok<br/>";
/*你还可以进行一次搜索操作
foreach ($dbh->query(‘SELECT * from FOO’) as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
*/
$dbh = null;
} catch (PDOException $e) {
    die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass);

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); //设置属性
//$rs = $db->query("SELECT * FROM oto_task_clerk_coupon");
//$rs->setFetchMode(PDO::FETCH_ASSOC);
//$result_arr = $rs->fetchAll();
$rs = $db->query("update oto_task_clerk_coupon set award = 10 where user_name = 'fedde' ");
$res = $rs->rowCount();
//$result_arr = $rs->fetchAll();
print_r($res);

简单的总结一下上面的操作:


查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。

PDO::query()主要是用于有记录结果返回的操作,特别是 SELECT操作,

PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。

PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。


获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。

PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。

PDOStatement::fetch() 是用来获取一条记录,

PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。


另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。

PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。


© 著作权归作者所有

共有 人打赏支持
deadmau5
粉丝 5
博文 36
码字总数 10724
作品 0
黄浦
程序员
通过PDO 连接SQL Server

在开发PHP程序时我们可以借助多种连接方式访问各类的数据库获取所需的数据。自PHP5以来PDO作为新生事物将所有数据库接口收入囊中,为开发人员提供了方便快捷的数据库读取方式。本文将介绍如何...

junwong ⋅ 2012/03/09 ⋅ 0

PHPDroid 更新,PHP 开发 Android 应用

PHPDroid 更新了,集成最新PHP7+Swoole+BusyBox+QRencode 开发 Android 应用。 下载地址: phpdroid20160703.apk(5.8M) phpdroid20160703.7z(4.7M) apk里包含PHP-7.0.8和高性能网络编程扩展S...

eechen ⋅ 2016/07/04 ⋅ 52

PHP连接Mysql常用API(mysql,mysqli,pdo)的区别

什么是API? 一 个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数,变量等等一切 你的应用程序中为了完成特定任务而需要调用的内容。在PHP应用程序需要和数...

Junn ⋅ 2014/03/03 ⋅ 1

PHP-redis编译成功

下面是在看《Sams.Extending.and.Embedding.PHP》的第4章 编译PHP的一些实践记录,相应中文版 地址http://www.walu.cc/phpbook/4.1.md,书上关于windows部分的资料和命令是05年的,已经很老了...

dingdayu ⋅ 2015/10/18 ⋅ 0

LAMP架构(PHP的安装解析)

PHP官网www.php.net 当前主流版本为5.6/7.1 一,下载php包: wget http://cn2.php.net/distributions/php-.tar.gz 二,解压php包: tar zxf php-.tar.gz 进入php文件中 cd php- 三,开始编译...

小新锐 ⋅ 2017/12/18 ⋅ 0

LAMP的php Extensions 问题

LAMP的php Extensions 问题 编译安装php,php会生成很多扩展,这些扩展分为动态和静态编译两种。 动态编译会自动生成so文件,并保存在:$php/lib/php/extensions/no-debug-non-zts-20060613...

xiaomaimai ⋅ 2011/03/15 ⋅ 0

最简单优雅的sql操作类库--sql.class.php

sql.class.php 做最好的PHP操作类库 简单易懂的源代码 配置简单,方便易用 基于PDO 支持多种数据库,不耦合,不依赖第三方类库 功能适中,便于集成 支持PHP5.2+ 安全防sql注入 基于最小接口原则 ...

vb2005xu ⋅ 2014/12/16 ⋅ 0

郭新华/php-cp

php-cp(php-connect-pool),redis和pdo的本地代理 [中文简介] http://blog.sina.com.cn/s/blog_9eaa0f400102v9fd.html 提供连接池,读写分离,负载均衡,慢查询日志,大数据块日志等功能 要求...

郭新华 ⋅ 2017/01/19 ⋅ 0

【转】PDO函数属性详解

PHP官方文档关于PDO的翻译已经部分完成了,可以直接去查看官方文档了 http://php.net/manual/zh/book.pdo.php PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和m...

狗头666 ⋅ 2012/02/15 ⋅ 0

PDO防注入原理分析以及使用PDO的注意事项

我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么...

月影又无痕 ⋅ 2013/07/30 ⋅ 7

没有更多内容

加载失败,请刷新页面

加载更多

下一页

破解公司回应苹果“USB限制模式”:已攻破

本周四,苹果发表声明称 iOS 中加入了一项名为“USB 限制模式”的功能,可以防止 iPhone 在连接其他设备的时候被破解,并且强调这一功能并不是针对 FBI 等执法部门,为的是保护用户数据安全。...

六库科技 ⋅ 31分钟前 ⋅ 0

MyBtais整合Spring Boot整合,TypeHandler对枚举类(enum)处理

概要 问题描述 我想用枚举类来表示用户当前状态,枚举类由 code 和 msg 组成,但我只想把 code 保存到数据库,查询处理,能知道用户当前状态,这应该怎么做呢?在 Spring 整合MyBatis 的时候...

Wenyi_Feng ⋅ 49分钟前 ⋅ 0

redis安装记录

自行学习记录吧,有来自网络学习过程和调整不是照搬的 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.10.tar.gz 第二步:解压压缩包 tar -zxvf redis-4.0.10.t...

cavion ⋅ 56分钟前 ⋅ 0

synchronized与Lock的区别

# <center>王梦龙的读书笔记第一篇</center> ## <center>-synchronized与Lock的区别</centre> ###一、从使用场景来说 + synchronized 是能够注释代码块、类、方法但是它的加锁是和解锁使用一......

我不想加班 ⋅ 今天 ⋅ 0

VConsole的使用

手机端控制台打印输出,方便bug的排查。 首先需要引入vconsole.min.js 文件,然后在文件中创造实例。就能直接使用了。 var vConsole = new VConsole(); vConsole的文件地址...

大美琴 ⋅ 今天 ⋅ 0

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 今天 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 今天 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 今天 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 今天 ⋅ 0

数据结构与算法之魔术师发牌问题

一、魔术师发牌问题 1.问题描述 魔术师利用一副牌中的13张黑牌,预先将他们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么。”魔术师把最上面的那张牌数为...

aibinxiao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部