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
}
}
또는 여기
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에서 처리 내부 디스플레이 결과 :
I을 PHP에서 반환 된 변수는 2 차원 배열이므로 재생하기가 다소 복잡하다는 것을 알았습니다. 모범 사례가 무엇인지 잘 모르고 전문가 의견을 묻고 싶습니다.
나는 새로운 방법을 만들 때마다, 나는 $ 연결 변수를 다시 만들어야 :
$ 연결 =로 mysql_connect (DB_SERVER, DB_USER, DB_PASS 아래 참조); if (! $ connection) { die ("데이터베이스 연결에 실패했습니다 :". mysql_error()); }
$db_select = mysql_select_db(DB_NAME,$connection); if (!$db_select) { die("Database selection failed: " . mysql_error()); }
그것은 나에게 중복처럼 보인다. 쿼리가 필요할 때마다 호출하는 대신 한 번만 수행 할 수 있습니까? 나는 PHP 클래스에 익숙하지 않다. 너희들이 나를 도울 수 있기를 바랍니다. 감사.
저는 2 차원 배열을 다루는 것에 질 렸습니다. 그러나 나는 당신의 제안을 따를 것입니다. 고마워. – FlyingCat
Jerry에게 감사드립니다. 나는 또한 PDD를 사용하는 것이 더 좋을 것이라고 prodigitalson에 동의한다. 2D 배열에서 벗어나기위한 또 다른 제안은 데이터베이스 테이블과 일치하는 클래스를 작성한 다음 2D 배열을 얻 자마자 결과를 사용하여 클래스를 인스턴스화하고 리턴 할 수 있다는 것입니다. 이렇게하면 결과를 더 쉽고 표준화 된 방식으로 처리 할 수 있습니다. 추가 수업 등을 만드는 데는 약간의 작업이 있지만 PDO 가져 오기 기능을 살펴보면 2D 배열을 처리하지 않고도 인스턴스화를 수행 할 수 있습니다. 양자 택일로, cakePHP보세요 ... 너무 많은 옵션 :) 행운을 빌어 요 :) – Jacob