所以我在
PHP中有这个数据库类,我只有1个函数(除__construct和__destruct之外.让我进一步解释一下……
我最初编写它是因为当我连接到数据库时,我只需要调用我的函数connect_to_db(),它返回一个mysqli对象.然后我使用了这个对象函数( – > query(), – > prepare(), – > bind_param()等等)来做任何事情.这个混乱(并且仍然是因为我还没有将我的代码转换到我的新类),其中包含很多只执行特定操作的函数,例如:
function get_country_info($db, $usrid) {
$statement = "select `name`, `population`, `money`, `food` from `countries` where `usr_id` = ?";
$qry = $db->prepare($statement) or
trigger_error("get_country_info():statement failed...");
$qry->bind_param("i", $usrid);
$qry->execute();
$qry->bind_result($name, $population, $money, $food);
$qry->fetch();
$res = array("name" => $name,
"pop" => $population,
"money" => $money,
"food" => $food);
return $res;
}
我原本打算做的只是为了清楚起见将它们放到一个类中,但我实际上最终做的是创建一个类,在创建时为特定数据库创建一个mysqli对象(通过参数提供)并在销毁时关闭关闭此链接.我非常想不必担心键入$db-> close();当脚本完成执行连接时关闭.
它只有1个其他功能;查询().此函数可以处理提出的任何查询,并将其作为多维数组输出.它使用eval().根据我的理解,这通常是不赞成的 – 但是eval()非常有用;那为什么不赞成呢?
我猜这个功能可能很慢,但我只是把它用于一个宠物项目(基于浏览器的乡村管理游戏)而且我没有注意到任何我根本不担心的事情.我担心的是人们是否通常会在“现实世界”中执行此操作,或者是否存在某种标准,人们会这样做,或者通常使用PHP中包含的内容(或可添加的内容) ?
我是自学成才,所以有时我真的不知道做事的最佳方式.也许有人可以在这里建议我?
有问题的功能可以在这里看到:http://pastebin.org/353721,因为它的~60行,我不想让页面混乱.我也没有对它进行过广泛的测试(我甚至不知道单元测试是什么,所以我通过很多不同的方式使用函数测试)所以它可能有问题我不知道你们可以指出出.
谢谢.