2016-10-02 5 views
0

저는 PHP가 아니며 간단한 PHP 스크립트를 실행하려고합니다. 그것은 PHP 5.6과 LAPP에 연결하고 간단한 테스트 데이터베이스를 설정했습니다지속적인 PHP 500 오류

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

데이터베이스에 아무런 문제가 없습니다. 문제가 데이터베이스에 성공적으로 연결되어 있지만 영구 500 오류를 표시하는 PHP 스크립트입니다.

<?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'); 

뿐만 아니라 성가신 500 내부 오류가있는에 변화를하지 않는 내 php.ini 파일

display_errors = On 

의 라인. 내 코드를 한 줄씩 수동으로 가져 오는 중 배열 ($myarray = array())을 정의 할 때 오류 (echo $myarray)가 나에게 오류가 있음을 알았습니다. 유일한 해결 방법은 건너 뛰려는 json_encode을 사용하는 것입니다. 두 가지 질문이 있습니다.

* 일반 500 오류가 발생하는 이유는 무엇입니까?

* 왜 배열을 정의하고 그냥 에코가 충돌하는 것입니까?

+0

';'에 대한 코드를 확인하십시오 –

답변

0

echo $myarray의 끝에는 ;이 없습니다. 변수를 사용하기 전에 변수를 선언하는 것이 좋습니다. 따라서 while 루프에서 사용하기 전에 $myarray = array();을 사용하십시오.

+0

Arrghhh ....이 세미 콜론은 데이터베이스에 연결하는 나머지 오류를 PHP로 표시 할 수 없습니다. 내 바보 같은 과실. 고맙습니다 – Jimx