持久的PHP 500错误

时间:2016-10-02 11:42:46

标签: php arrays internal-server-error

我是PHP的新手,我正在尝试运行一个简单的PHP脚本。它用PHP 5.6连接到LAPP,我设置了一个简单的测试数据库

Peugeot     6666666
Mercedes    57127
Skoda       9000
Volvo       29000
Bentley     350000
Citroen     21000
Hummer      41400
Volkswagen  21600

数据库没问题。问题是php脚本成功连接到数据库但显示持续500错误。

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
#   $db = pg_connect("sslmode=require host=$host port=5432 dbname=$database user=$user password=$pass");
   if(!$db){
#      echo "Error : Unable to open database\n";
   } else {
#      echo "Opened database successfully\n";
   }

   $sql =<<<EOF
      SELECT * from Cars;
EOF;

   $ret = pg_query($db, $sql);
   if(!$ret){
      echo pg_last_error($db);
      exit;
   } 
#   $myarray = array()
    while($row = pg_fetch_row($ret)){
      $myarray[] = $row;
   }

#   echo json_encode($myarray, JSON_NUMERIC_CHECK);
    echo $myarray
#       echo "Operation done successfully\n";


    pg_close($db);
?>

两行

error_reporting(E_ALL);
ini_set('display_errors', '1');

以及我的php.ini文件中的行

display_errors = On

对烦人的500内部错误没有任何影响。 逐行手动获取代码我注意到,当我回显它($myarray = array())时,定义数组(echo $myarray)会给我错误。唯一的解决方法是使用我想跳过的json_encode。 所以我有两个问题。

*为什么我仍然有一般的500错误?

*为什么定义数组并且只是回应它崩溃?

1 个答案:

答案 0 :(得分:0)

您的echo $myarray最后没有;。 在使用它们之前声明变量也是一种很好的做法。 因此,在使用while循环之前使用$myarray = array();