php PDO mysql写法

php PDO写法连接mysql;

写法一:

$db="mysql:host=localhost;dbname=sql" ; //连接数据,地址localhost;数据库名称sql;

$username="root"; //数据库登录账号;

$password="root"; //数据库登录密码;

try{

$pdo=new PDO($db,$username,$password);   //连接数据库赋值$pdo;

}catch(PDOException $e){

echo "PDO连接失败".$e->getMessage();

}

写法二:

$db=new PDO("mysql:host=localhost;dbname=sql","root","root");  //连接数据,地址localhost;数据库名称sql;数据库登录账号密码; 连接赋值$db

PDO增删查改

事例一:

<?php
$dbh = new PDO(‘mysql:host=localhost;dbname=access_control‘, ‘root‘, ‘‘);  
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
$dbh->exec(‘set names utf8‘); 
/*添加*/
//$sql = "INSERT INTO `user` SET `login`=:login AND `password`=:password"; 
$sql = "INSERT INTO `user` (`login` ,`password`)VALUES (:login, :password)";  $stmt = $dbh->prepare($sql);  $stmt->execute(array(‘:login‘=>‘kevin2‘,‘:password‘=>‘‘));  
echo $dbh->lastinsertid();  
/*修改*/
$sql = "UPDATE `user` SET `password`=:password WHERE `user_id`=:userId";  
$stmt = $dbh->prepare($sql);  
$stmt->execute(array(‘:userId‘=>‘7‘, ‘:password‘=>‘4607e782c4d86fd5364d7e4508bb10d9‘));  
echo $stmt->rowCount(); 
/*删除*/
$sql = "DELETE FROM `user` WHERE `login` LIKE ‘kevin_‘"; //kevin%  
$stmt = $dbh->prepare($sql);  
$stmt->execute();  
echo $stmt->rowCount();  
/*查询*/
$login = ‘kevin%‘;  
$sql = "SELECT * FROM `user` WHERE `login` LIKE :login";  
$stmt = $dbh->prepare($sql);  
$stmt->execute(array(‘:login‘=>$login));  
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){     
 print_r($row);  
}  
print_r( $stmt->fetchAll(PDO::FETCH_ASSOC)); 
?>

事例二:

<?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语句说明

<?php

$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

?>

时间: 2024-12-28 01:29:24

php PDO mysql写法的相关文章

PHP扩展PDO MySQL之PDOStatement::bindParam vs bindValue

PHP扩展PDO MySQL之PDOStatement::bindParam vs bindValue技术 maybe yes 发表于2015-11-16 13:27 原文链接 : http://blog.lmlphp.com/archives/155/The_difference_of_PDOStatement_bindParam_and_bindValue_of_PHP_extension_PDO_MySQL  来自 : LMLPHP后院 前些日子将 LBlog 在线体验站点 http://

Ubuntu系统 PHP PDO MySQL Extension Loaded

PHP's PDO MySQL extension must be loaded. This is not the same as the MySQLi extension. Please refer to PHP's PDO documentation for more information. 安装php5-snmp CLI PDO MySQL Support 安装php5-mysql

PHP wget 增强脱裤脚本(PDO MYSQL)

脚本参考了 LCX Gavin2位前辈的帖子.在此表示非常的感谢. https://www.t00ls.net/thread-26740-1-1.html https://www.t00ls.net/thread-26791-1-1.html 说明:脚本支持PDO和MYSQL 2种方式 优先使用PDO .如果服务器不支持PDO  就选择MYSQL 方式. 个人认为  PDO 的好处有效率高  代码简洁 通用性好  这代码稍作改动就可以拿去脱mssql 不过用php和mssql组合的应该不多- -

php pdo mysql数据库操作类

原文:php pdo mysql数据库操作类 findAll(array( 'field'=>'ID,albumName,albumImage, mainActor,directors,tags,info,area, keywords,wflag,year,mod_version,totalDuration', 'where'=>$where, 'order'=>'flag desc,hit_count desc', 'limit'=>"{$limit['offset']

ThinkPHP 连接Oracle的配置写法,(使用Oci扩展而非PDO的写法)

测试了很多遍,TP官网根本就没有给出正确的写法,而且网上搜索到的全都是错误的. 跟踪代码,最终找出了正确的配置写法,备份如下,(by default7#zbphp.com) 'DB_TYPE' => 'oracle', // 数据库类型 'DB_HOST' => 'oracle.zbphp.com', // 服务器地址 'DB_NAME' => '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.zbphp.com)(PORT=1029))

centos7.2 pdo mysql扩展

前言 选择是一个崭新的开端,选择高耸入云的峭崖便需有"路漫漫其修远兮,吾将上下而求索"的信念;选择波涌浪滚的大海便需有"直挂云帆济沧海"的壮志豪情;选择寒风劲厉的荒漠便需有"醉卧沙场君莫笑,古来征战几人回"的博大胸怀----- 一 .安装pdo-mysql错误1 首先下载解压包 把安装包指定路径 1. tar zvxf /root/media/var/PDP_MYSQL 2. cd /root/media/var/PDO_MYSQL 3. 记住先

Centos中安装PHP的PDO MySQL扩展的教程

一聚教程网 >操作系统>>CentOS > Centos中安装PHP的PDO MySQL扩展的教程 www.111cn.net 编辑:Bolshevik 来源:转载 天在寻思着安装 Drupal 玩一下,在安装的过程中发现数据库选项只支持 SQLite 而没有 MySQL.纳尼?为什么会这样?结果发现没有编译安装PDO MySQL导致的.于是赶紧更新LAMP一键安装脚本. PHP Data Objects(PDO)扩展为 PHP 访问数据库定义了一个轻量级的一致接口.实现 PDO

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 active.  Consider using PDOStatement::fetchAll().  Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by

swoole结合php的pdo mysql模式出现MySQL server has gone away

mysql做为php的黄金搭档和互联网上应用最广泛的数据库,免不了天天与之打交道,不少朋友在熟悉swoole的使用之后,也趟平了不少坑,准备实战了,终于上线了,正愉快的体验swoole带来的巨大改进,突然数据库操作bug了,大量报mysql server gone away, 于是swooler心里千万之草尼马奔腾而过,大骂,swoole误我--- 且慢!!!这真不是swoole的问题!!!!不是swoole的问题!!!!不是swoole的问题!!!!(重要的事情说三遍) 原因     不是sw