我在下面的代码中使用PDO在一个excetute和fetchall中运行多个语句。这适用于Microsoft SQL Server,但不适用于Oracle。PHP PDO Oracle不适用于多种语句
<?php
$conn = new PDO("odbc:oratest", "SYSTEM", "password");
$result = $conn->prepare("select * from all_objects; select * from all_users;");
$result->execute();
echo "<html><body>";
do
{
echo "<table border=\"0\">";
$row = $result->fetchAll(PDO::FETCH_ASSOC);
if($row && count($row) > 0) {
$keys = array_keys($row[0]);
echo "<tr>";
for($j = 0; $j < count($keys); $j++) {
echo "<td>" . $keys[$j] . "</td>";
}
echo "</tr>";
for($i = 0; $i < count($row); $i++) {
echo "<tr>";
for($j = 0; $j < count($keys); $j++) {
echo "<td>" . $row[$i][$keys[$j]] . "</td>";
}
echo "</tr>";
}
}
echo "</table>";
} while($result->nextRowset());
echo "</body></html>";
?>
使用OCI PHP方式的其他代码也没有使用多条语句的工作:
$stid = oci_parse($conn, 'select * from all_objects; select * from all_users;');
的oci_parse,只不过没有说它不理解的分号。
是否有某种方式可以在PHP中同时在一个批处理中运行多个语句,并连接到最新的Oracle XE。
这个问题不同于现有的MySQL问题,因为这个问题是关于Oracle,它是具有不同功能和限制的不同驱动程序。
使你的代码吐出错误 – nogad
有没有错误的fetchAll返回零数组没有数据。 –
Oracle SQL Developer如何做到这一点? –