Mysql
 sql >> база данни >  >> RDS >> Mysql

Резултати от базата данни като обекти или масиви?

Винаги съм използвал обекти - но не поставям данните директно от заявката. Използвайки функции "set" създавам оформлението и така избягвам проблеми с обединяването и сблъсъците с имена. В случая на вашия пример за 'full_name' вероятно бих използвал 'as', за да получа частите от името, да задам всяка в обекта и да предложа 'get_full_name' като член fn.

Ако се чувствате амбициозни, бихте могли да добавите всякакви неща към 'get_age'. Задайте рождената дата веднъж и от там се развихряйте.

РЕДАКТИРАНЕ:Има няколко начина да направите обекти от вашите данни. Можете да дефинирате предварително класа и да създавате обекти или да ги създавате „в движение“.

--> Някои v опростени примери -- ако това не е достатъчно, мога да добавя още.

в движение:

$conn = DBConnection::_getSubjectsDB();  
$query = "select * from studies where Status = 1";  
$st = $conn->prepare( $query );  

$st->execute();  
$rows = $st->fetchAll();  
foreach ( $rows as $row )  
{  
    $study = (object)array();  
    $study->StudyId = $row[ 'StudyId' ];  
    $study->Name = $row[ 'StudyName' ];  
    $study->Investigator = $row[ 'Investigator' ];  
    $study->StartDate = $row[ 'StartDate' ];  
    $study->EndDate = $row[ 'EndDate' ];  
    $study->IRB = $row[ 'IRB' ];  

    array_push( $ret, $study );  
} 

предварително дефинирано:

/** Single location info
*/
class Location  
{  
    /** Name  
    * @var string  
    */  
    public $Name;  

    /** Address  
    * @var string  
    */  
    public $Address;  

    /** City  
    * @var string  
    */  
    public $City;

    /** State
    * @var string
    */
    public $State;

    /** Zip
    * @var string
    */
    public $Zip;

    /** getMailing
    * Get a 'mailing label' style output
    */
    function getMailing()
    {  
         return $Name . "\n" . $Address . "\n" . $City . "," . $State . "  " . $Zip;
    }
}

използване:

$conn = DBConnection::_getLocationsDB();  
$query = "select * from Locations where Status = 1";  
$st = $conn->prepare( $query );  

$st->execute();  
$rows = $st->fetchAll();  
foreach ( $rows as $row )  
{  
    $location = new Location();  
    $location->Name= $row[ 'Name' ];  
    $location->Address = $row[ 'Address ' ];  
    $location->City = $row[ 'City' ];  
    $location->State = $row[ 'State ' ];  
    $location->Zip = $row[ 'Zip ' ];  

    array_push( $ret, $location );  
} 

След това по-късно можете да преминете през $ret и да изведете пощенски етикети:

foreach( $ret as $location )
{ 
    echo $location->getMailing();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 начина за конвертиране на число в осмично в MySQL

  2. Как да инсталирате MySQL Workbench на Ubuntu

  3. Как да изключите стриктния режим на MySQL в Rails

  4. Създайте bash скрипт за наблюдение на заявки MySQL

  5. Как да направите множество резултати от заявка, за да намалите броя на заявката?