以前我使用自己托管的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"}]
到目前为止我做了什么:
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
答案 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来查看实际返回的内容或该特定时间的所有内容。一旦弄清楚出了什么问题,就把它取下来。