有没有办法枚举mysql查询中使用的表?
可以说我有疑问:
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
我想要返回数组:
$tables = array(
[0] => 'db_people.people_facts',
[1] => 'db_system.connections',
[2] => 'db_people.people',
);
是的,您可以获得有关查询结果中的表和列的信息。这就是所谓的结果集元数据.
MySQL 结果集元数据的唯一 PHP 解决方案是使用 MySQLi 扩展和mysqli_stmt::result_metadata() http://php.net/manual/en/mysqli-stmt.result-metadata.php功能。
$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";
您必须通过循环字段来自行构建查询中使用的不同表的数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)