我有一个关于PHP类的问题。我想通过PHP获取Mysql的结果。我想知道是否最佳做法是在类中显示结果或存储结果并将其处理为html。PHP回声查询结果在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中返回的变量有点复杂,因为它是二维数组。我不确定最佳做法是什么,并且想问专家的意见。
每次创建一个新的方法,我必须重新创建$连接变量:见下文
$连接的mysql_connect =(DB_SERVER,DB_USER,DB_PASS);如果(!$ connection){ die(“Database connection failed:”。mysql_error()); }
$db_select = mysql_select_db(DB_NAME,$connection); if (!$db_select) { die("Database selection failed: " . mysql_error()); }
这似乎是多余的给我。我可以只做一次,而不是随时调用我需要的查询吗?我是新来的PHP类。希望你们能帮助我。谢谢。
我只是厌倦了处理二维数组,但我会按照你的建议。非常感谢。 – FlyingCat 2010-05-23 22:10:33
谢谢杰瑞。我也同意prodigitalson,它会更好地使用PDO。另一个建议摆脱二维数组,是创建与数据库表匹配的类,然后只要获得二维数组,就可以实例化并返回一个包含结果的类。这使得处理结果变得更加容易和更加标准化,尽管创建额外类的工作有相当多的工作量等。如果您查看PDO提取函数,它甚至可以为您实例化,而不处理2D数组。或者,看看cakePHP ...太多选项:)祝你好运:) – Jacob 2010-05-23 22:23:51