php PDO mysql
来源:互联网 发布:重庆seo顾问服务 编辑:程序博客网 时间:2024/05/15 08:25
<?php
/*//pdo连接信息
$pdo=array("mysql:host=localhost;dbname=demo;charset=utf8","root","");
//开始连接数据库
$db = Mysql::newClass();
$db->pdoConnect($pdo);
$updateRow = array(
"user_id" => "2",
"meta_key" => "username"
);
//$db->select("wp_usermeta"); //发送sql
//$result=$db->selectOne(); //获取一条数据
//$db->selectCount(); //获取全部
//$db->update("wp_usermeta",$updateRow,"umeta_id=1"); //更新信息
//$db->insert("wp_usermeta",$updateRow); //插入数据
//echo $db->lastinsertid(); //获取插入后的id
//$db->delete("wp_usermeta","umeta_id>18"); //删除数据*/
class
Mysql
{
private
static
$object
;
private
$PDO
;
private
$prepare
;
/////单例模式 start
private
function
__construct()
{
}
public
static
function
newClass()
{
if
(!(self::
$object
instanceof
self))
{
self::
$object
=
new
self;
}
return
self::
$object
;
}
public
function
__clone(){
trigger_error(
'Clone is not allow!'
,E_USER_ERROR);
}
//////单例模式 end
//连接pdo
public
function
pdoConnect(
$address
)
{
try
{
$this
->PDO =
new
PDO(
$address
[0],
$address
[1],
$address
[2]);
$this
->PDO->setAttribute(PDO::ATTR_PERSISTENT,true);
//设置抛出错误
$this
->PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//设置当字符串为空时转换为sql的null
$this
->PDO->setAttribute(PDO::ATTR_ORACLE_NULLS,true);
//由MySQL完成变量的转义处理
$this
->PDO->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch
(PDOException
$e
)
{
$this
->Msg(
"PDO连接错误信息:"
.
$e
->getMessage());
}
}
//错误提示
private
function
Msg(
$the_error
=
""
){
$html
="<html>
<head>
<meta http-equiv=
'Content-Type'
content=
'text/html; charset=UTF-8'
/>
<title>mysql error</title>
</head>
<body>
<div style=
'width: 50%; height: 200px; border: 1px solid red; font-size: 12px;'
>
$the_error
</div>
</body>
</html>
";
echo
$html
;
exit
;
}
/*
*
* insert,delete,update操作
*
* */
public
function
insert(
$table
,
$row
)
{
$sql
=
$this
->sqlCreate(
"insert"
,
$table
,
$row
);
$result
=
$this
->sqlExec(
$sql
);
}
public
function
update(
$table
,
$row
,
$where
)
{
$sql
=
$this
->sqlCreate(
"update"
,
$table
,
$row
,
$where
);
$result
=
$this
->sqlExec(
$sql
);
}
public
function
delete
(
$table
,
$where
)
{
$sql
=
$this
->sqlCreate(
"delete"
,
$table
,
""
,
$where
);
$result
=
$this
->sqlExec(
$sql
);
}
//服务与insert,update,delete,生成sql
private
function
sqlCreate(
$action
,
$table
,
$row
=
""
,
$where
=
""
)
{
$actionArr
=
array
(
"insert"
=>
"insert into "
,
"update"
=>
"update "
,
"delete"
=>
"delete from "
);
$row
=
empty
(
$row
) ?
""
:
$this
->rowCreate(
$row
);
$where
=
empty
(
$where
) ?
""
:
" where "
.
$where
;
$sql
=
$actionArr
[
$action
].
$table
.
$row
.
$where
;
return
$sql
;
}
//拼成row
private
function
rowCreate(
$row
)
{
$sql_row
=
" set"
;
foreach
(
$row
as
$key
=>
$val
)
{
$sql_row
.=
" "
.
$key
.
"='"
.
$val
.
"',"
;
}
return
trim(
$sql_row
,
","
);
}
//执行sql,返还影响行数
private
function
sqlExec(
$sql
)
{
try
{
$result
=
$this
->PDO->
exec
(
$sql
);
}
catch
(PDOException
$e
)
{
$this
->Msg(
$e
->getMessage());
}
return
$result
;
}
//获取insert插入的id
public
function
lastinsertid()
{
return
$this
->PDO->lastinsertid();
}
/*
*
* select 部分
* */
public
function
select(
$table
,
$fields
=
""
,
$where
=
""
,
$orderby
=
""
,
$sort
=
""
,
$limit
=
""
)
{
$fields
=
empty
(
$fields
) ?
"*"
:
$fields
;
$sqlSelect
=
$this
->sqlCreateSelect(
$table
,
$fields
,
$where
,
$orderby
,
$sort
,
$limit
);
$this
->query(
$sqlSelect
,
$where
);
}
//生成select sql
private
function
sqlCreateSelect(
$table
,
$fields
=
"*"
,
$where
=
""
,
$orderby
=
""
,
$sort
=
""
,
$limit
=
""
)
{
$whereSql
=
empty
(
$where
)?
" 1=1 "
:
$this
->whereCreate(
$where
);
$orderbySql
=
empty
(
$orderby
)?
""
:
" order by "
.
$orderby
.
" "
.
$sort
;
$limitSql
=
empty
(
$limit
)?
""
:
" limit "
.
$limit
;
$sql
=
"select $fields from $table where "
.
$whereSql
.
$orderbySql
.
$limitSql
;
return
$sql
;
}
private
function
whereCreate(
$where
)
{
$whereSql
=
""
;
foreach
(
$where
as
$key
=>
$val
)
{
$whereSql
.=
" "
.
$key
.
"=:"
.
$key
.
" and"
;
}
return
$whereSql
.
" 1=1 "
;
}
//执行select sql
private
function
query(
$sql
,
$where
)
{
try
{
$this
->prepare =
$this
->PDO->prepare(
$sql
);
}
catch
(PDOException
$e
)
{
$this
->Msg(
"预处理sql出错信息:"
.
$e
->getMessage().
"<br>sql:("
.
$sql
.
")"
);
}
empty
(
$where
)?
""
:
$this
->bind(
$where
);
$this
->prepare ->execute();
}
private
function
bind(
$where
)
{
foreach
(
$where
as
$key
=>
$val
)
{
$this
->prepare->bindValue(
":"
.
$key
,
$val
);
}
}
/*select获取数据*/
//获取一条
public
function
selectOne()
{
$result
=
$this
->prepare->fetch(PDO::FETCH_ASSOC);
return
$result
;
}
//获取全部数据
public
function
selectAll()
{
$result
=
$this
->prepare->fetchAll(PDO::FETCH_ASSOC);
return
$result
;
}
//获取查询记录数
public
function
selectCount()
{
$total
=
$this
->prepare->rowCount();
return
$total
;
}
}
0 0
- php mysql PDO使用
- php PDO连接MySql
- php mysql PDO使用
- php PDO连接mysql
- pdo+mysql+php
- php mysql PDO使用
- php mysql PDO使用
- php PDO mysql
- php mysql PDO封装
- php PDO mysql问题解决
- PHP PDO操作MYSQL
- PHP PDO操作MYSQL
- PHP MySQL & PDO
- PHP PDO(mysql) 封装类
- PHP PDO操作使用MySql
- centos php pdo-mysql扩展
- php pdo 连接MySQL数据库
- php pdo链接mysql数据库
- C++中的容器类详解
- 【JavaScript&JQuery】原生API实现li标签随机排列
- 并购百草味只是开始,好想你或将再创一个“好想你”
- UVA-10817 Headmaster's Headache
- 欢迎使用CSDN-markdown编辑器
- php PDO mysql
- arcgis中按属性计算的一些公式
- java文件上传
- java中hashcode与equals详解(集合中的用法)
- thread.yield()和thread.sleep(time)的理解
- android打造万能适配器
- js去掉html标签和去掉字符串文本的所有的空格
- windows常用命令
- unity3D学习【功能实现】之十三:简单式的理解协程和做下巡逻