微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oci_fetch_array错误,可以通过php从oracle检索数据

如何解决oci_fetch_array错误,可以通过php从oracle检索数据

|| 当我尝试执行循环以获取数据时,我可以通过PHP从oracle db检索数据,这给了我错误 未定义的索引:第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);


?>
    

解决方法

oci_fetch_array()
的文档中说:   Oracle的默认值,不区分大小写   列名将大写   结果中的关联索引   数组。区分大小写的列名   将使用   确切的列情况。采用   结果数组上的
var_dump()
  验证用于的适当情况   每个查询。 并且代码中的注释还显示:
// Use the uppercase column names for the associative array indices
那么,为什么要使用小写的列名? 这是您的代码:
echo  $row[\'id\'] ;
echo $row[\'username\'];
根据代码中的注释以及手册中的注释,不应使用大写形式,例如:
echo  $row[\'ID\'] ;
echo $row[\'USERNAME\'];
而且,如果仍然无法解决问题,请按照手册中的说明进行操作:在循环中使用
var_dump()
,以查看数据的样子:
while (($row = oci_fetch_array($stid,OCI_BOTH))) {
    var_dump($row);
}
    ,就我而言,我使用了NVL Oracle / PLSQL NVL函数使您可以在遇到空值时替换一个值 NVL(string1,replace_with) 从销售中选择NVL(commission,0); 输出: 123 223 323 423 答案就像 123 223 323 0 423     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。