بفرمایید اینم یه کلاسی که خودم نوشتم واسه pdo استفاده کنید
/*
* Simple MYSQL_PDO class
*
* @author : reza <info@rezaonline.net>
*
* usage :
$db = new RxDB('mysql:dbname=mydatabase;host=localhost', 'db_username', 'db_password');
//insert
$af = $db->insert('tbl',array(
'name'=>'reza',
'age'=>30
));
if($af>0)
echo true;
//update
$id = 1;
$af = $db->update('tbl',array(
'name'=>'reza',
'age'=>30
),'id=?' ,array($id));
//delete
$af = $db->delete('tbl','id=?',array($id));
//query
$row = $db->query("select * from user where id=? and title=?",array($id,$title))->row();
$all = $db->query("select * from user")->all();
//update , delete
$db->query("update users set username=? where id=?")->execute(array($username,$id));
//read
$all = $db->get("users","`id` < ? limit 10",array($id))->all();
$all = $db->get(array('id,username,password',"users"),"`id` < ? limit 10",array($id))->all();
**/
class RxDb
{
private $sql = NULL;
private $params = array();
private $method = '';
public static $log = array();
public $pdo = NULL;
function __construct($_1,$_2,$_3)
{
$this->pdo = new PDO($_1,$_2,$_3);
$this->pdo->query("set names utf8")->execute();
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
public function query($sql,$params=array())
{
$this->sql = $sql ;
$this->params = $params;
$this->method = __FUNCTION__;
return $this;
}
function get($tbl='',$condition='',$params=array())
{
if(is_array($tbl))
{
$f = $tbl[0];
$tbl = $tbl[1];
}
else
{
$f = '*';
}
if(empty($condition))
$c = '';
else
$c = " WHERE $condition ";
$this->sql = "SELECT {$f} FROM `{$tbl}` {$c}";
$this->params = $params;
return $this;
}
function row($fetch='object')
{
$key = array(
'object'=> PDO::FETCH_OBJ ,
'array'=> PDO::FETCH_ASSOC ,
'num'=> PDO::FETCH_NUM
);
$stmt = $this->pdo->prepare($this->sql);
foreach($this->params as $key=>$val)
{
if(is_int($key))
{
$key = $key+1;
$stmt->bindValue($key, $val);
}
else
$stmt->bindParam($key, $val);
}
$stmt->execute();
$this->logQuery();
if($fetch == 'array')
return $stmt->fetch(PDO::FETCH_ASSOC);
else
return $stmt->fetch(PDO::FETCH_OBJ);
}
function all($fetch='object')
{
$key = array(
'object'=> PDO::FETCH_OBJ ,
'array'=> PDO::FETCH_ASSOC ,
'num'=> PDO::FETCH_NUM
);
$stmt = $this->pdo->prepare($this->sql);
foreach($this->params as $key=>$val)
{
if(is_int($key))
{
$key = $key+1;
$stmt->bindValue($key, $val);
}
else
$stmt->bindParam($key, $val);
}
$stmt->execute();
$this->logQuery();
if($fetch == 'array')
return $stmt->fetchAll(PDO::FETCH_ASSOC);
else
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
function execute($params=array())
{
if( ! empty($params))
$this->params = $params;
if(empty($this->params))
{
$ret = $this->pdo->prepare($this->sql);
$this->logQuery();
return $ret->execute();
}
else
{
$stmt = $this->pdo->prepare($this->sql);
foreach($this->params as $key=>$val)
{
if(is_int($key))
{
$key = $key+1;
$stmt->bindValue($key, $val);
}
else
$stmt->bindParam($key, $val);
}
$ret =$stmt->execute();
$this->logQuery();
return $ret;
}
}
protected function logQuery()
{
$qr = $this->sql ;
if( ! empty($this->params))
{
$qr .=" | ";
foreach($this->params as $key=>$val)
$qr .= " {$key}=>{$val}";
}
self::$log[] = $qr;
$this->params = array();
$this->sql = '';
}
//query Builder
function insert($tbl,$data=array())
{
$key = join(',',array_keys($data));
$val = str_repeat('?,', intval(count(array_keys($data))));
$val = trim($val,',');
$qr = "INSERT INTO `{$tbl}` ($key) values($val) ";
return $this->query($qr)->execute(array_values($data));
}
function update($tbl='',$data=array(),$condition=' 1=1',$params = array())
{
$qr = "update `{$tbl}` set ";
$newData = array();
foreach($data as $key=>$vals)
{
$qr .="`{$key}`=?,";
$newData[] = $vals;
}
foreach($params as $row)
$newData[] = $row;
$qr = rtrim($qr,',');
$qr .= " WHERE {$condition} ";
return $this->query($qr)->execute(array_values($newData));
}
function delete($tbl='',$condition='',$params=array())
{
if( ! empty($condition))
$wh = " where ({$condition})";
else
$wh = '';
return $this->query("delete from `{$tbl}` {$wh}")->execute($params);
}
function __destruct()
{
unset($this->pdo);
$this->pdo = NULL;
}
}
نحوه استفاده
$db = new RxDB('mysql:dbname=mydatabase;host=localhost', 'db_username', 'db_password');
//insert
$af = $db->insert('tbl',array(
'name'=>'reza',
'age'=>30
));
if($af>0)
echo true;
//update
$id = 1;
$af = $db->update('tbl',array(
'name'=>'reza',
'age'=>30
),'id=?' ,array($id));
//delete
$af = $db->delete('tbl','id=?',array($id));
//query
$row = $db->query("select * from user where id=? and title=?",array($id,$title))->row();
$all = $db->query("select * from user")->all();
//update , delete
$db->query("update users set username=? where id=?")->execute(array($username,$id));
//read
$all = $db->get("users","`id` < ? limit 10",array($id))->all();
$all = $db->get(array('id,username,password',"users"),"`id` < ? limit 10",array($id))->all();