【问题标题】:How to SELECT data from Oracle using PHP如何使用 PHP 从 Oracle 中选择数据
【发布时间】:2019-08-27 20:01:09
【问题描述】:

我正在使用 ORACLE 选择锁定表的用户,查询工作正常,但是当我尝试检索结果时,抛出了一个错误。

$c = ' SELECT oracle_username os_user_name, locked_mode, object_name, object_type FROM V$LOCKED_OBJECT lo,DBA_OBJECTS do'." WHERE lo.object_id = do.object_id AND do.object_name='CLIENTS'";

$s = oci_parse($conn_s, $c );
    oci_execute($s);


    while($res = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)){
        //var_dump($res);
        $check = $res['OS_USER_NAME'];
    }
echo $check;

我如何检索这些值;

【问题讨论】:

  • 你能包含抛出的错误吗?
  • 您可以打印查询并直接在您的数据库中运行。这样您就可以了解某种错误。将来,如果您遇到错误,并且您觉得这很容易,您可以解决..
  • 是变量还是表名 V$LOCKED_OBJECT lo ??
  • 也许是权限?什么错误...这些视图需要更多权限
  • @zedfoxus 向我抛出了这个错误:未定义的变量:检查

标签: php oracle php-5.4


【解决方案1】:

你应该有一个像这样的逗号oracle_username os_user_name,:

$c = ' SELECT oracle_username, os_user_name, locked_mode, object_name, object_type FROM V$LOCKED_OBJECT lo,DBA_OBJECTS do'." WHERE lo.object_id = do.object_id AND do.object_name='CLIENTS'";

【讨论】:

  • 这不一定会产生错误......它只会创建一个别名
【解决方案2】:

如果您使用两个不同的表并且要检索列名,我们想告诉数据库我们要选择哪个表列。例如 lo.oracle_username、do.os_user_name。

$c = "SELECT oracle_username, os_user_name, locked_mode, object_name, object_type FROM V$LOCKED_OBJECT lo,DBA_OBJECTS do WHERE lo.object_id = do.object_id AND do.object_name='CLIENTS'";

$s = oci_parse($conn_s, $c );
  $res = oci_execute($s);


    while($res = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)){
        //var_dump($res);
        $check = $res['OS_USER_NAME'];
    }
echo $check;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多