PHP print_r num_rows => 9但空白页

时间:2016-12-05 19:32:45

标签: php mysql mysqli

以前我使用自己托管的PHP文件,但是当我移动到我的客户端(GoDaddy)时出现问题。

我有两个输入 - 汽车和教育(我有更多但是对于这个问题,我只使用两个作为例子)

就我自己而言,两个输入都会毫无问题地打印输出。但在GoDaddy中,只有教育可以产生输出,而汽车产生空白页。所以我添加了这段代码:

echo '<pre>';
print_r($res);
echo '</pre>';

对于输入汽车,我得到了:

<pre>mysqli_result Object
(
    [current_field] => 0
    [field_count] => 1
    [lengths] => 
    [num_rows] => 9
    [type] => 0
)
</pre>

对于输入编辑,我得到了:

<pre>mysqli_result Object
(
    [current_field] => 0
    [field_count] => 1
    [lengths] => 
    [num_rows] => 4
    [type] => 0
)
</pre>

[{"subcategory":"Adult & Continuing Education"},{"subcategory":"Early Childhood Education"},{"subcategory":"Educational Resources"},{"subcategory":"Other Educational"}]

到目前为止我做了什么:

  1. 检查查询 - 没问题。查询在phpmyadmin
  2. 中返回所需的结果
  3. 增加内存限制 - 完成但在PHP设置中,即使在刷新专用IIS应用程序池后仍显示为默认
  4. 我有其他输入,其输出/ num行超过9但是返回结果没有问题
  5. PHP代码:

    <?php
    
        if($_SERVER['REQUEST_METHOD']=='GET') {
            require_once('dbConnect.php');
            $category = $_GET['category'];
    
            $sql = "SELECT subcategory FROM wg_categories WHERE category = '$category'";
            $res = mysqli_query($con,$sql);
    
            $result = array();
            while($row = mysqli_fetch_array($res)){
                array_push($result,
                    array('subcategory'=>$row[0]
                ));
            }
            echo json_encode($result);
            mysqli_close($con);
        }
    ?>
    

    我有什么遗漏的吗?

    error_reporting - E_ALL display_errors - on log_errors - on

1 个答案:

答案 0 :(得分:0)

在审核php.net后,问题可能在$row[0]。因为返回的第一个元素可能$row[1];以匹配MySQL中的行id。因此,可能会发生中断,因为它正在访问可能不存在的元素。

http://php.net/manual/en/function.array.php

这也可能是MySQL如何返回数组的问题。请查看以下链接以获取帮助,MySQLi驱动程序可能会返回数组,作为数组数组或作为关联数组,这是问题的来源。

http://php.net/manual/en/mysqli-result.fetch-assoc.php

您可能需要将行作为关联方式。所以使用实际的列名。像id,firstname,lastname等IE,$row['id']; $row['table_name'];

您可能还想尝试添加try catch块,然后使用var dumping来查看实际返回的内容或该特定时间的所有内容。一旦弄清楚出了什么问题,就把它取下来。

http://php.net/manual/en/language.exceptions.php