关于将PHP与SQL分离的建议
我为这个问题挣扎了几个小时。 如何将Mysql调用与PHP代码分离。 我使用PDO为Mysql查询构建了一个社交网络,但SQL在其中 每节课。例如,我有一个类关于将PHP与SQL分离的建议,php,class,pdo,repository,Php,Class,Pdo,Repository,我为这个问题挣扎了几个小时。 如何将Mysql调用与PHP代码分离。 我使用PDO为Mysql查询构建了一个社交网络,但SQL在其中 每节课。例如,我有一个类Users,方法是get all Users public function fetchUsers() { $Database = new Database(); $Database->setConnection(); $dbh = $Database->connect()->getHandle()
Users
,方法是get all Users
public function fetchUsers() {
$Database = new Database();
$Database->setConnection();
$dbh = $Database->connect()->getHandle();
$sql = '<query>';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($result) {
return array('success' => true,
'data' => $result);
}
return array('success' => false,
'data' => null);
}
然而,这感觉是不必要的,因为现在我实例化了2个类,而我可以使用最初的单个类来进行调用,为什么要创建2个对象呢?我知道它的可读性,但是有人对如何将Mysql从我的类中干净地分离出来还有其他建议吗 可读性和组织性是关键。你对“实例化2个类”的抵制是错误的。结构简单,易于理解,易于调试。从长远来看,每次都是赢家。内存很便宜,而且不管怎样,第二节课的开销也不会有什么不同。我很喜欢你的答案。我知道我对小事想得太多了,但我认为在更大的计划中,它们可能会成为一个问题。内存现在便宜了好几天,我想我会走repo路线。我不明白你说的“将Mysql与类分开”的意思,但通常它指的是类似ORM的方法。您可能想看看ORM或一些PHP框架,它们中的每一个都有自己的ORM或AR实现。Yii和LAraval是过去最流行的教义,这是一条学习曲线。它必须是按请求定制的,但我想我是在模仿类似的东西。
class Users {
getUsers() {
$repo = new UserRepository();
$repo->findAll();
}
}