Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oci_fetch_数组出错,可以通过php从oracle检索数据_Php_Oracle - Fatal编程技术网

oci_fetch_数组出错,可以通过php从oracle检索数据

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从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("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
423

wow现在好了,当更改用户名,id为大写字符username,id时,它运行良好,但是我如何检查php+mysql中的查询是否有错误,我使用这种方法如果$查询{diemysql_error}如何使用oracleIt’似乎oci_execute在失败时返回false:如果SQL查询中有错误,它将失败-该函数将返回false,我想只需使用一些无效的SQL查询,您就会知道:-