Oracle/PHP oci_fetch_all() issue


Oracle/PHP oci_fetch_all() issue

对于使用Oracle的PHP来说,这是一个全新的概念。我在网上举了几个例子。我使用的是官方网站上的示例1。我的问题是,它显示了我想要的所有记录,但缺少列名/字段名。现在有人知道如何修改它,使其包含标题吗?(例如,我的员工表上会有…名字,姓氏…)谢谢

<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT * FROM employee');
oci_execute($stid);
$nrows = oci_fetch_all($stid, $res);
echo "$nrows rows fetched<br>'n";
var_dump($res);
// Pretty-print the results
echo "<table border='1'>'n";
foreach ($res as $col) {
echo "<tr>'n";
foreach ($col as $item) {
    echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>'n";
}
echo "</tr>'n";
}
echo "</table>'n";
oci_free_statement($stid);
oci_close($conn);
?>

大多数DBMS(我还没有完全使用过它们,所以我不能说"所有")系统都有一个单独的表来存储这种元信息,所以你想查询它。在Oracle中,它存储为字典,可能存储在某种表头数据或元信息中(我真的不太了解Oracle的底层结构),它被称为user_tab_columns

你是做什么的?像查询表一样查询它。

SELECT * FROM user_tab_columns WHERE TABLE_NAME='employee'

然而,我不知道你为什么要在给定代码的情况下查询它,因为你已经知道列名,并且可以很容易地在中硬编码它们。