Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PDO FETCH_CLASS dengan tabel yang digabungkan

Tidak ada dukungan untuk langsung di PDO sejauh yang saya ketahui. Biasanya jika Anda perlu membuat grafik objek yang kompleks dari hasil kueri, itu adalah tanggung jawab ORM.

Jika Anda membutuhkan fungsi ini, saya sarankan menggunakan Doktrin atau Mendorong dibandingkan dengan menulis sesuatu sendiri. Ada juga yang lain yang mungkin lebih ringan, tapi saya tidak punya pengalaman dengan mereka.

EDIT:

Saya pikir mungkin saya salah memahami pertanyaan itu karena saya yakin orang lain mungkin. Saya pikir pertanyaan sebenarnya adalah bagaimana mendapatkan akses ke kolom yang digabungkan, bukan hanya bagaimana membuat objek dari kolom tersebut.

Dalam hal ini cukup menggunakan metode arry fethc standar seperti PDO::FETCH_ASSOC , PDO::FETCH_NUMERIC atau PDO::FETCH_BOTH akan memberi Anda semua kolom yang Anda tanyakan.

Jadi jika Anda ingin mengubahnya menjadi "grafik objek" Anda harus melakukannya secara manual bukan dengan menggunakan PDO::FETCH_CLASS .

Misalnya:

//$db is pdo:
// also notice im aliase the columns prefixing the name so that we can tell what belongs to
// post and what belongs to user, an alternative approach would be to use FETCH_NUMERIC,
// which just uses the column positions from the seelct statement as the keys
// so in this case post.id would be in the array as key 0, and user.name would be in the
// array as key 4
$stmt = $db->prepare('SELECT post.id as p_id, 
       post.text as p_text, 
       post.user_id as p_user_id, 
       user.id as u_id, 
       user.name as u_name
FROM POST INNER JOIN User on post.user_id = user.id');

$stmt->execute();

while (($row = $stmt->fetch(PDO::FETCH_ASSOC)) !== false) {
   print_r($row);
   /* will output:
      Array (
         'p_id' => 'value'
         'p_text' => 'value'
         'p_user_id' => 'value'
         'u_id' => 'value',
         'u_name' => 'value'
      )
   So now you need to decide how to create your objects with the information returned
   */
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. konversi kueri sql saya ke ekspresi kueri atau fetchxml di crm

  2. Pilih nilai yang dimulai dengan angka

  3. Bagaimana cara mengatur MySQL agar berfungsi dengan C#?

  4. Pendekatan terbaik MySQL untuk normalisasi db, hubungan, dan kunci asing

  5. MySQL String Indeks Terakhir Dari