【发布时间】:2010-05-23 21:46:15
【问题描述】:
我有一个关于 PHP 类的问题。我正在尝试通过 PHP 从 Mysql 获取结果。我想知道最佳做法是在类中显示结果还是将结果存储并在 html 中处理。
例如在Class里面显示结果
class Schedule {
public $currentWeek;
function teamQuery($currentWeek){
$this->currentWeek=$currentWeek;
}
function getSchedule(){
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
die("Database connection failed: " . mysql_error());
}
$db_select = mysql_select_db(DB_NAME,$connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
$scheduleQuery=mysql_query("SELECT guest, home, time, winner, pickEnable FROM $this->currentWeek ORDER BY time", $connection);
if (!$scheduleQuery){
die("database has errors: ".mysql_error());
}
while($row=mysql_fetch_array($scheduleQuery, MYSQL_NUMS)){
//display the result..ex: echo $row['winner'];
}
mysql_close($scheduleQuery);
//no returns
}
}
或者将查询结果作为变量返回并在php中处理
class Schedule {
public $currentWeek;
function teamQuery($currentWeek){
$this->currentWeek=$currentWeek;
}
function getSchedule(){
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
die("Database connection failed: " . mysql_error());
}
$db_select = mysql_select_db(DB_NAME,$connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
$scheduleQuery=mysql_query("SELECT guest, home, time, winner, pickEnable FROM $this->currentWeek ORDER BY time", $connection);
if (!$scheduleQuery){
die("database has errors: ".mysql_error());
// create an array }
$ret = array();
while($row=mysql_fetch_array($scheduleQuery, MYSQL_NUMS)){
$ret[]=$row;
}
mysql_close($scheduleQuery);
return $ret; // and handle the return value in php
}
}
这里有两件事:
我发现php中的返回变量有点复杂,因为它是二维数组。我不确定最佳做法是什么,想请教各位专家的意见。
-
每次创建新方法时,我都必须重新创建 $connection 变量:见下文
$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS); 如果(!$连接){ die("数据库连接失败:" .mysql_error()); }
$db_select = mysql_select_db(DB_NAME,$connection); if (!$db_select) { die("Database selection failed: " . mysql_error()); }
这对我来说似乎是多余的。我可以只做一次而不是在需要查询时调用它吗?我是 php 类的新手。希望你们能帮助我。谢谢。
【问题讨论】: