【发布时间】:2015-07-05 21:56:08
【问题描述】:
例如,我的数据库中有几个表,例如用户、产品等。对于每个表,我至少有一个关联的类和几个方法,例如 addUser、updateUserName、updateUserPassword 等. 对于每种方法,我在使用 PDO 时都需要准备 SQL,如下所示:
$sql = "INSERT INTO `user`
(`id`,`username`,`password`,`log`)
VALUES
(:id, :username, :password, :log)";
然后我将值存储在这样的数组中:
$array = array('id'=>$id, 'username'=>$username, 'password'=>$password, 'log'=>$log);
然后我使用 PDO 的东西:
$pdo = new PDO($dsn, $user, $password);
$mysql = $pdo->prepare($sql);
$mysql->execute($array);
所以看来,对于 User 类中的所有不同方法,我需要做这个“准备”的事情。是不是太乏味了?有没有更有效的方法来做到这一点,尤其是考虑到存在一个包含许多列的表时我将值存储在数组中的部分,在这种情况下我会得到一个很长的准备语句?
【问题讨论】:
-
我很困惑为什么每个方法都需要这个,而不仅仅是一次
-
我不太明白你所说的“只有一个”是什么意思。如果不同的方法需要准备不同的数组,也不一定所有的函数参数都需要准备在数组中,例如使用LIMIT $offset,$page_size查询时,这两个参数就不需要准备了。那么我将如何准备这些值呢?
-
你在 OOP 方面装备精良吗,如果是,那么我认为单个 DB 类可以提供帮助
-
好吧,这个问题说每个方法都插入相同,现在它不同 - 所以
-
我了解 OOP 的概念,但我并不完全了解在 DB 类中究竟要做什么。你能更详细地解释一下吗?谢谢。