我是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错误?
*为什么定义数组并且只是回应它崩溃?
答案 0 :(得分:0)
您的echo $myarray
最后没有;
。
在使用它们之前声明变量也是一种很好的做法。
因此,在使用while循环之前使用$myarray = array();
。