几点建议:
1、如果我
$db = new PDOX;
$a = $db->query($sql1);
$b = $db->query($sql2);
print_r($a->fetchall());
print_r($b->fetchall());
可以吗?显然是不可以的,因为
$this->statement = $this->pdo->query($sql);
前一次的查询结果被后一次的覆盖了
2、事务(Transaction)操作宜封装成整体,只传入一组 sql 而隐藏相关操作
3、没考虑使用存储过程
4、PDOX 可直接继承于 PDO 而无需抄写 PDO 已有方法
1、如果我
$db = new PDOX;
$a = $db->query($sql1);
$b = $db->query($sql2);
print_r($a->fetchall());
print_r($b->fetchall());
可以吗?显然是不可以的,因为
$this->statement = $this->pdo->query($sql);
前一次的查询结果被后一次的覆盖了
2、事务(Transaction)操作宜封装成整体,只传入一组 sql 而隐藏相关操作
3、没考虑使用存储过程
4、PDOX 可直接继承于 PDO 而无需抄写 PDO 已有方法
1、像你举的这个例子,可有解决方法。
2、事务我很少用到,也不知道该怎样封装。如果你能指点一下更好。
3、存储过程也很少用到。
4、抄写PDO的方法,只是想在使用上和PDO无异样,方便直接写PDO的朋友直接使用此类。无须过多的学习。不像其它的数据库类,在学完原生的数据库操作后,又要再次学习一个新的数据库操作,可能它很简单,但学习也是要时间的。请问怎样整合会更简洁此呢??
class PDOX extends PDO {
//执行各种 sql 指令,并可通过参数 $param 进行扩展
function query($sql, $param=null) {}
//查询并返回单条记录
function fetch($sql) {};
//查询并以数组方式返回多条记录
function fetchall($sql) {}
}数据库类只要有这三个方法就可满足绝大多数应用的需要了
由于是继承于 PDO,所以 PDO 原有的方法一个也不会少
$a = $db->query($sql1);
$b = $db->query($sql2);
print_r($a->fetchall());
print_r($b->fetchall());这种写法的程序员应该不多吧?如果这样的话,可以考虑先放弃这种操作支持。如果我的类在效率或者并发上有问题的话,这才是大问题。这个类内部是否有错误或者不妥之处??各位大牛,请多多发言。
$data = array(':title'=>$title, ':content'=>$content);
$pdo = new PDOX;
$lastID = $pdo->insertBind('article', $data);
修改数据:
$data = array(':title'=>$title, ':id'=>$id);
$sql = 'update article set title=:title where id=:id';
$yesorno = $pdo->updateBind($sql, $data);删除数据:
$data = array(':id'=>$id);
$sql = 'delete article where id=:id';
$yesorno = $pdo->deleteBind($sql, $data);最主要的是这种写法,可以省下很多的代码量。这才是我写此类的关键。
你说的这个还真是,在递归中需要使用。想使用此类的朋友要注意了。我会尽量优化PHP代码或者使用其它方法替代递归,因为递归有些耗资源。谢谢你提醒。
不知道版主可有更好的PDO操作类???
可否贡献一个。