【问题标题】:PHP oci_fetch_array on JOIN query skipping the while loopJOIN 查询中的 PHP oci_fetch_array 跳过了 while 循环
【发布时间】:2013-06-24 13:09:36
【问题描述】:

在使用 PHP 循环我的 SQL 查询的结果时遇到了一些问题。

当我只查询一个表时脚本运行良好,但在使用连接时完全跳过了我的 while 循环。

例如

$query = "SELECT * FROM WFH_USER_DETAILS WHERE USERNAME='$username'";

$result = oci_parse($con, $query);

if(oci_execute($result)) {  

    while($row = oci_fetch_array($result, OCI_ASSOC+OCI_RETURN_NULLS)) {

                    echo 'Working';

    }

上面的工作正常,但是当我尝试时;

$query = "SELECT ud.*, t.TOTAL_STEPS FROM WFH_USER_DETAILS ud, WFH_TOTALS t WHERE ud.USERNAME=t.USERNAME AND ud.USERNAME='$username'";

$result = oci_parse($con, $query);

if(oci_execute($result)) {  

    while($row = oci_fetch_array($result, OCI_ASSOC+OCI_RETURN_NULLS)) {

                echo 'Working';

    }

oci_execute 在这两种情况下都可以正常工作,但在后者中它甚至无法达到我的回声...似乎只是跳过了 while 循环。我查看了文档以查看使用连接时是否存在不同的语法,但我似乎找不到任何东西。

任何帮助都会很棒。 谢谢:)

【问题讨论】:

  • 也许$row = oci_fetch_array($result, OCI_ASSOC+OCI_RETURN_NULLS) 返回假?您是否直接针对数据库运行查询?确保它返回一些东西。
  • 如果我从终端运行它并通过我的数据库软件,查询工作正常......只是不在脚本中:(

标签: php sql oracle


【解决方案1】:

使用

ps -ef and/or ls -ltr

查看正在运行 apache/php 进程的用户。

然后做:

chown (username):(group) thatfile.php

例如,如果 PHP 使用名为“www-data”的用户和组,我会这样做:

chown www-data:www-data myquery.php

然后:

chmod 755 myquery.php

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 2013-10-27
    • 2014-10-18
    • 2012-08-30
    • 2023-03-21
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多