Có, bạn có thể nhận thông tin về các bảng và cột là một phần của kết quả truy vấn. Đây được gọi là siêu dữ liệu tập hợp kết quả .
Giải pháp PHP duy nhất cho siêu dữ liệu tập kết quả MySQL là sử dụng phần mở rộng MySQLi và mysqli_stmt::result_metadata()
chức năng.
$stmt = $mysqli->prepare("SELECT * FROM db_people.people_facts pf
INNER JOIN db_system.connections sm ON sm.source_id = pf.object_id
INNER JOIN db_people.people p ON sm.target_id = p.object_id
ORDER BY pf.object_id DESC");
$meta = $stmt->result_metadata();
$field1 = $meta->fetch_field();
echo "Table for field " . $field1->name . " is " . $field1->table . "\n";
Bạn sẽ phải tự mình xây dựng mảng các bảng riêng biệt được sử dụng trong truy vấn bằng cách lặp qua các trường.