Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cơ sở dữ liệu kết quả là đối tượng hay mảng?

Tôi đã luôn sử dụng các đối tượng - nhưng tôi không đưa dữ liệu vào trực tiếp từ truy vấn. Bằng cách sử dụng các hàm 'set', tôi tạo bố cục và do đó tránh được các vấn đề với các phép nối và xung đột đặt tên. Trong trường hợp ví dụ 'full_name' của bạn, tôi có thể sẽ sử dụng 'as' để lấy các phần tên, đặt từng phần trong đối tượng và cung cấp 'get_full_name' làm thành viên fn.

Nếu bạn cảm thấy tham vọng, bạn có thể thêm tất cả các loại vào 'get_age'. Đặt ngày sinh một lần và bắt đầu từ đó.

CHỈNH SỬA:Có một số cách để loại bỏ các đối tượng ra khỏi dữ liệu của bạn. Bạn có thể xác định trước lớp và tạo các đối tượng hoặc bạn có thể tạo chúng 'nhanh chóng'.

-> Một số ví dụ đơn giản hóa v - nếu điều này không đủ, tôi có thể bổ sung thêm.

đang bay:

$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 );  
} 

được xác định trước:

/** 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;
    }
}

cách sử dụng:

$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 );  
} 

Sau đó, bạn có thể lặp lại $ ret và xuất các nhãn gửi thư:

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. PHP ràng buộc một ký tự đại diện

  2. Làm cách nào để nhập tệp .sql trong cơ sở dữ liệu mysql bằng PHP?

  3. Lỗi khi gửi gói QUERY

  4. Cho phép các ký tự không phải ascii trong cơ sở dữ liệu MySQL

  5. Cập nhật trường khi không có giá trị