oci_fetch_数组出错,可以通过php从oracle检索数据
我可以通过php从OracleDB检索数据,当我尝试执行循环以获取数据时,它会给我错误 未定义索引:第15行C:\xampp\htdocs\testing\test.php中的id 这是我的密码oci_fetch_数组出错,可以通过php从oracle检索数据,php,oracle,Php,Oracle,我可以通过php从OracleDB检索数据,当我尝试执行循环以获取数据时,它会给我错误 未定义索引:第15行C:\xampp\htdocs\testing\test.php中的id 这是我的密码 <?php $username = "kemo"; $password = "kemoacer77"; $server = "localhost/XE"; $conn = oci_connect($username, $password, $server); if(!$conn){ die("co
<?php
$username = "kemo";
$password = "kemoacer77";
$server = "localhost/XE";
$conn = oci_connect($username, $password, $server);
if(!$conn){
die("connect error".oci_error());
}
$stid = oci_parse($conn, 'SELECT id, username FROM users');
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_BOTH))) {
// Use the uppercase column names for the associative array indices
echo $row['id'] ;
echo $row['username'];
}
oci_free_statement($stid);
oci_close($conn);
?>
文件说明:
Oracle的默认值,不区分大小写
列名将使用大写字母
结果中的关联索引
大堆区分大小写的列名
将使用
精确的圆柱壳。使用
将结果数组上的var_转储到
验证要用于的适当案例
每个查询
代码中的注释还表示:
// Use the uppercase column names for the associative array indices
那么,为什么要使用小写的列名呢
这是您的代码:
echo $row['id'] ;
echo $row['username'];
根据代码中的注释和手册中的注释,您是否应该不使用大写字母,如下所示:
echo $row['ID'] ;
echo $row['USERNAME'];
而且,如果这仍然不起作用,只需按照手册中的说明执行:在循环中使用,以查看数据的外观:
while (($row = oci_fetch_array($stid, OCI_BOTH))) {
var_dump($row);
}
就我而言,我使用了NVL
Oracle/PLSQL NVL函数允许您在遇到空值时替换值
NVL string1,将_替换为
从销售中选择NVLcommission,0
输出:
123
223
323
423
答案是
123
223
323
0
423wow现在好了,当更改用户名,id为大写字符username,id时,它运行良好,但是我如何检查php+mysql中的查询是否有错误,我使用这种方法如果$查询{diemysql_error}如何使用oracleIt’似乎oci_execute在失败时返回false:如果SQL查询中有错误,它将失败-该函数将返回false,我想只需使用一些无效的SQL查询,您就会知道:-