php PDO mysql
php PDO写法连接mysql;
$db=new PDO("mysql:host=localhost;dbname=sql","root","root");
PDO增删查改
事例
<?php
header("content-type:text/html;charset=utf-8");
$dsn="mysql:dbname=test;host=localhost";
$db_user='root';
$db_pass='admin123';
try{
$pdo=new PDO($dsn,$db_user,$db_pass);
}catch(PDOException $e){
echo '数据库连接失败'.$e->getMessage();
}
//新增
$sql="insert into test (id,user) values (1,'phpthinking')";
$res=$pdo->exec($sql);
echo '影响行数:'.$res;
//修改
$sql="update test set user='phpthinking' where id=1";
$res=$pdo->exec($sql);
echo '影响行数:'.$res;
//查询
$sql="select * from test";
$res=$pdo->query($sql);
foreach($res as $row){
echo $row['user'].'<br/>';
}
//删除
$sql="delete from test where id=1";
$res=$pdo->exec($sql);
echo '影响行数:'.$res;
?>
PDO语句说明
$pdo=new PDO("mysql:dbname=test;host=127.0.0.1;port=3306","root","php");
$pdo=new PDO("mysql:dbname=数据库;host=127.0.0.1;port=3306","root","php",array(PDO::ATTR_PERSISTENT=>true));
$pdo->setAttribute(PDO::ATTR_PERSISTENT,true);//设置数据库连接为持久连接
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//设置抛出错误
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS,true);//设置当字符串为空转换为SQL的NULL
$pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);//表字段字符的大小写转换或原样使用列信息
$pdo->query("SET NAMES utf8");//设置数据库编码
$pdo->query(sql语句);//返回PDOStatement对象,一般用于select
$pdo->exec(sql语句);//返回受影响行数,一般用于insert|update|delete
$sm=$pdo->query();
$sm->rowCount()//返回记录数
$pdo=null;//释放资源
while($data=$sm->fetch()){print_r($data);}//只会返回一条数据
$sm->setFetchMode(PDO::FETCH_ASSOC);//只返回关联索引
$data=$sm->fetchAll();//返回所有数据
$sm=$pdo->prepare(sql语句);
$sm->execute();
$data=$sm->fetchColumn();//一般用来进行count统计
将列分发到变量
$sm->bindColumn(数字,变量);
$sm->bindColumn(字段名,变量);
while($data=$sm->fetch(PDO::FETCH_BOUND)){}
替换变量
$sm=$pdo->prepare(":占位变量");
$sm->bindParam(":占位变量",值,PDO::PARAM_INT);
$sm->bindParam(":占位变量",值,PDO::PARAM_STR,12);
$sm->execute();
替换问号占位符
$sm=$pdo->prepare("?");
$sm->bindValue(1,值,PDO::PARAM_INT);//第1个问号
$sm->bindValue(2,值,PDO::PARAM_STR,12);//第2个问号
$sm->execute();
方法
PDO::query()//处理一条SQL语句并返回一个PDOStatement对象
PDO::lastInsertId()//获取插入到表中的最后一条数据的主键值
PDO::prepare()//负责准备执行的SQL语句
PDO::exec()//处理一条SQL语句并返回所影响的行数
PDO::beginTransaction//开始一个事务并标明回滚起始点
PDO::commit//提交一个事务并执行SQL语句
PDO::__construct//构造函数
PDO::errorCode//获取错误码
PDO::errorInfo//获取错误信息
PDO::getAttribute//获取一个数据库连接对象的属性
PDO::getAvailableDrivers//获取有效的PDO驱动器名称
PDO::inTransaction
PDO::quote//为某个SQL语句中的字符串添加引号
PDO::rollBack//回滚一个事务
PDO::setAttribute//为一个数据库连接对象设定属性
PDOStatement::bindColumn//将列分发到变量
PDOStatement::bindParam//替换变量
PDOStatement::bindValue//替换问号占位符
PDOStatement::closeCursor//关闭光标
PDOStatement::columnCount//字段数
PDOStatement::debugDumpParams
PDOStatement::errorCode//获取错误码
PDOStatement::errorInfo//获取错误信息
PDOStatement::execute//执行语句
PDOStatement::fetch//只会返回一条数据
PDOStatement::fetchAll//返回所有数据
PDOStatement::fetchColumn//一般用来进行count统计
PDOStatement::fetchObject
PDOStatement::getAttribute
PDOStatement::getColumnMeta
PDOStatement::nextRowset
PDOStatement::rowCount//记录数
PDOStatement::setAttribute
PDOStatement::setFetchMode
常量
PDO::ATTR_AUTOCOMMIT//是否开启自动提交功能true|false
PDO::ATTR_PREFETCH//设置应用程序提前获取的数据大小[千字节为单位]
PDO::ATTR_TIMEOUT//设置超时之前的等待时间[秒为单位]
PDO::ATTR_SERVER_INFO//包含与数据库特有的服务器信息
PDO::ATTR_SERVER_VERSION//包含与数据库服务器版本号有关的信息
PDO::ATTR_CLIENT_VERSION//包含与数据库客户端版本号有关的信息
PDO::ATTR_CONNECTION_STATUS//设置超时之前的等待时间[秒为单位]
PDO::CASE_LOWER//强制列名是小写
PDO::CASE_UPPER//强制列名为大写
PDO::CASE_NATURAL//列名按照原始的方式
PDO::FETCH_ASSOC//关联数组形式
PDO::FETCH_NUM//数字索引数组形式
PDO::FETCH_BOTH//两者数组形式都有
PDO::FETCH_OBJ//按照对象的形式
//注释:
当异常被触发时,通常会发生:在PHP5中添加了类似于其它语言的错误异常处理模块。在 PHP代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获。需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常。每一个 try 至少要有一个与之对应的 catch。
使用多个 catch 可以捕获不同的类所产生的异常,当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行。当然,PHP 允许在 catch 代码块内再次抛出(throw)异常,当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而 PHP 就会尝试查找第一个能与之匹配的 catch,如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出 Uncaught Exception ... (未捕获异常)的提示信息.
<?php
详细:
http://www.jb51.net/article/61316.htm
http://www.jb51.net/article/59692.htm
http://www.jb51.net/article/61317.htm
php PDO mysql的更多相关文章
- PHP wget 增强脱裤脚本(PDO MYSQL)
脚本参考了 LCX Gavin2位前辈的帖子.在此表示非常的感谢. https://www.t00ls.net/thread-26740-1-1.html https://www.t00ls.net/ ...
- Centos中安装PHP的PDO MySQL扩展的教程
PHP Data Objects(PDO)扩展为 PHP 访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能.注意利用 PDO 扩展自身并 ...
- inux php pdo mysql 扩展
今天在本机部署了一个pdo项目,发现一些问题,真没想到pdo mysql,不容易装啊,哈哈,我说的不容易,是因为php5.3以前版本,yum源里面根本没有.部署后就报,Undefined class ...
- php pdo mysql存入转义
php pdo mysql存入转义 因为存入html都是自动转义 相当于PHP的htmlspecialchars 所以读取的时候要加htmlspecialchars_decode
- pdo mysql错误:Cannot execute queries while other unbuffered queries are active
运行环境:PHP 5.5.30-x64,MYSQL 5.6.27 错误代码:Cannot execute queries while other unbuffered queries are act ...
- php pdo mysql数据库操作类
<?php namespace iphp\core; use iphp\App; /** * 数据库操作基类 基于pdo * @author xuen * 支持链式操作,支持参数绑定 * 说明1 ...
- pdo mysql连接时报[2002] No such file or directory
将PDO连接中的dsn的host由“localhost”改为“127.0.0.1”即可
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- php mysql PDO基本操作
<?php $dbh = new PDO('mysql:host=localhost;dbname=localhost', 'root', ''); $dbh->setAttribute( ...
随机推荐
- 基于OpenGL编写一个简易的2D渲染框架-04 绘制图片
阅读文章前需要了解的知识,纹理:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 过程简述:利用 FreeI ...
- .Net 常用开发工具
,net常用开发工具 LinqPad使用 LinqPad连接Oracle 使用 LINQPad 将linq转换为 lambda表达式 或者 SQL语句 LINQPad 4 初次使用心得 一.双击 二. ...
- Jena TDB Assembler
TDB Assembler Assemblers (装配器) 是Jena中用于描述将要构建的对象(通常是模型和数据集 models & datasets)的一种通用机制.例如, Fuseki ...
- stl-stack+括号配对问题
栈:stl的一种容器,遵循先进后出原则,,只能在栈的顶部操作,就像放盘子一样,洗好的盘子叠在上面,需要用时也是先从顶部拿.不允许被遍历,没有迭代器 基本操作: 1.头文件#include<sta ...
- java重载(实现同一方法名,不同参数)
背景: 前几天写连接数据库时,因为要执行sql,有的是指向得到所有的执行结果,有的是想根据执行结果获得某一个字段的结果.这时我想通过同一个方法名,不同的参数,获得不同的结果.结果发现java的方法竟 ...
- SVN客户端的安装和使用
----------------------siwuxie095 SVN 客户端的安装 1.SVN 客户端,选择 TortoiseSVN,下载链接: https://tortoisesvn.net/d ...
- SVN概述
----------------------siwuxie095 SVN 概述 1.SVN 即 Subversion 的 ...
- N皇后问题12 · N-Queens
[抄题]: n皇后问题是将n个皇后放置在n*n的棋盘上,皇后彼此之间不能相互攻击. 给定一个整数n,返回所有不同的n皇后问题的解决方案. 每个解决方案包含一个明确的n皇后放置布局,其中“Q”和“.”分 ...
- sql批量修改字段内容的语句-SQL技巧
--update '表名' set 要修改字段名 = replace (要修改字段名,'被替换的特定字符','替换成的字符')--update tRecord set columnName = rep ...
- swift 设置图片动画组 iOS11之前 默认图片 设置不成功
在iOS 11 上, 1.先执行动画组 在设置图片执行帧动画,2.先设置图片在设置帧动画,执行帧动画 没有任何问题 在iOS 10和iOS9上,必须 执行 方法二(先设置图片在设置帧动画,执行帧动画 ...