当前位置: 首页 > 面试题库 >

如何使用PHP从Oracle数据库中获取数据

鲜于岳
2023-03-14
问题内容

我正在尝试创建一个用于在PHP上执行oracle sql语句的类。

这是我的index.php,我正在尝试调用我的函数

 <?php  
    include "dbaseconn/dbcontrol.php";
    $DbControl = new DbControl;
    $DbControl->execute(" SELECT * FROM SAMPLE_TABLE");
        foreach($DbControl->data as $items)
        {
         echo $items['SAMPLE_COLUMN_NAME'];
        }
?>

和我的dbcontrol.php用于我的功能

<?php
class DbControl{
    public $dbstr ='(DESCRIPTION = 
                (ADDRESS_LIST = 
                            (ADDRESS = (COMMUNITY = tcp.world)(PROTOCOL = TCP)(HOST = XX.XXX.XXX.XX)(PORT = XXXX))
                    )
                    (CONNECT_DATA = 
                      (SID = XXXXX)
                    )
                  )';

        public $user = "XXXXX";
        public $password = "XXXXX";

        function connect(){
            $this->connection = oci_connect($this->user,$this->password,$this->dbstr) or die(oci_error());
        }

    function execute($query){
        $this -> connect(); //Database Connect
        $this -> statement = oci_parse($this->connection,$query); //prepare the statement
        $this -> execute = oci_execute($this -> statement); //execute the statement
        $this -> totalRows = oci_num_rows($this -> statement); //get total number of rows
        $this -> data = array();
        if($this -> totalRows > 0){
                            //fetch data
                while($result = oci_fetch_array($this->statement)){
                    $this -> data[] = $result;
                }
        }
    }   
}

?>

我不确定似乎有什么问题。但是每次我运行这个。页面上未显示任何内容。没有结果,没有数据。但是我确信数据库中有数据。


问题答案:

您总是得到空白页的原因是:

1. $this -> totalRows = oci_num_rows($this -> statement);

oci_num_rows()函数不会返回您可能认为的所选行数。它返回受某些DML语句(SELECT语句除外)影响的行数。因此,在您的情况下,它将始终返回0,并因此返回条件

2. if($this -> totalRows > 0)

评估为false,while将永远不会执行循环。

此外,oci_fetch_array()一次获取一行,如果没有更多行要返回,则返回FALSE,因此 if($this -> totalRows > 0)在您的情况下似乎是多余的。



 类似资料:
  • 问题内容: 我正在尝试将静态数据转换为使用数据库结果。我将使用 MySQL 和 PHP 。 示例代码: 以下是我的php / msql: 如何使用我的MySQL查询中的那些并将其实现到chartjs上的数据集?我也希望标签也可以从我的MySQL查询中生成。我应该在jQuery代码内部循环数据集吗? 这是我正在使用的插件:http : //www.chartjs.org/docs/#line-cha

  • 问题内容: 我想知道如何在CodeIgniter中使用AJAX从数据库获取数据。您能否检查下面的代码以找出问题的原因?当我从视图中单击链接时,没有任何反应。 这是我的看法: 这是我的控制器: 这是我的模型: 这是我的JavaScript文件: 问题答案: 试试这个: 我所看到的问题是这是因为您的选择器是锚,并且锚具有文本而不是值。因此,我建议您使用而不是。

  • 问题内容: 我想使用php和jquery ajax从mysql数据库中获取数据。“ process.php”是连接到数据库并获取mysql数据的php文件。当它单独运行时它可以工作,但是当使用ajax调用时它不起作用。有人可以帮忙纠正错误吗?这是我的html文件: 这是我的process.php文件 问题答案: 您的ajax调用中有两个语法错误: 请记住,jQuery的ajax需要一个对象作为参数

  • 我有一个包含玩家数据的数组。这个数组根据玩家的数量而变化。数组看起来像这样: 我只想从每个玩家的数组中获取玩家名。我该怎么做?输出应该是如下所示的字符串:我在Internet或YouTube上没有找到任何内容。答案当然简单明了,但我还没有找到。 Im使用PHP 8.0.13。

  • 问题内容: 这是我的类,用于从数据库中获取数据 这是我的文件: 当我运行该程序时,出现异常后,请帮助我如何解决它。我是Hibernate的新手,尝试学习但被卡住了。 虽然我能够将数据存储在数据库中,但我有2个用于第一和第二类的数据获取数据,但在获取数据时遇到了问题PLZ帮助。 问题答案: 让我引述一下: 据我所知,您正在使用表名。 所以应该是这样的:

  • 我想从数据库中获取数据(经度/纬度),并使用Ajax调用将其返回到Google地图上绘制多个标记。 下面是包含ajax的javascript: 在ajax设置中,当我输入“dataType:json”时,函数错误被执行。输出为警报“加载数据时出错”。 这是我的控制器: 我尝试console.log(响应),它显示整个javascript代码。 当前没有“数据类型:'json'”的错误显示“未捕获类