Hãy nói rằng tôi có 2 đối tượng php:PDO FETCH_CLASS với các bảng tham gia
<?php
class Post {
public $id;
public $text;
public $user_id;
}
?>
và
<?php
class User {
public $id
public $name
}
?>
Mỗi bài có một hạn chế duy nhất với 1 người dùng trong cơ sở dữ liệu.
Tôi muốn điền dữ liệu vào "Bài đăng" -object với phương pháp "FETCH_CLASS" của PDO hoạt động cho tất cả thuộc tính "Bài đăng" nhưng làm cách nào để điền vào các thuộc tính trong "Người dùng"?
SQL tuyên bố của tôi trông như thế này:
SELECT post.id,
post.text,
post.user_id,
user.id,
user.name
FROM POST INNER JOIN User on post.user_id = user.id
Cảm ơn!
UPDATE:
ATM tôi điền vào tôi "Post" đẳng cấp như thế này:
$statement = $db -> prepare($query);
$statement -> execute();
$statement -> setFetchMode(PDO::FETCH_CLASS, 'Post');
$posts = $statement -> fetchAll();
Vậy làm thế nào tôi sẽ phải thay đổi điều đó cho cũng lấp đầy lớp khác "Thành viên"?
SOLUTION:
$statement = $db -> prepare($query);
$statement -> execute();
$posts = array();
while (($row = $statement->fetch(PDO::FETCH_ASSOC)) !== false) {
$post = new Post();
$post->id = $row['post_id'];
$post->text = $row['post_text'];
$post->created = $row['post_created'];
$post->image = $row['post_image'];
$post->url = $row['post_url'];
$post->weight = $row['post_weight'];
$post->likes = $row['post_likes'];
$user = new User();
$user->id = $row['user_id'];
$user->nickname = $row['user_nickname'];
$user->created= $row['user_created'];
$user->locked = $row['user_locked'];
$post->user = $user;
$posts[] = $post;
}
return $posts;
câu hỏi của bạn đã giúp ích rất nhiều! cảm ơn bạn! –