自定义PHP函数HTTP错误500
好吧我写了一个自定义的PHP函数来从MySQL DB中提取一个值,原本这个函数是在一个类中,我试图从类中调用它,它不断给我带来麻烦,所以我因为我没有收到500以外的任何错误,所以我没有在/ var/log/httpd/error_log中看到任何错误,并且如果我将$ host变量注释掉,我将其称为getSetting函数脚本刚才说没有登录这是预期的,因为我不提供任何信息到ssh登录方法。自定义PHP函数HTTP错误500
<?php
//testing for php
//created by dylan kraklan do not use without permission
//setenforce 0 on host machine is required
//header('Content-type: text/plain');
error_reporting('E_ALL | E_STRICT');
ini_set('display_errors', 'On');
include('Net/SSH2.php');
include('general.php');
include('config.php');
$database =Database::getInstance();
$db = $database->getConnection();
$gen = new Gen();
function getSetting($setting) {
$set_sql = "SELECT value FROM settings WHERE setting='$setting'";
$set_query =$db->query($set_sql);
$value_a = $set_query->fetch_assoc();
$value =$value_a['value'];
return $value;
}
$host = getSetting('remote_host');
//$user = $gen->getSetting('remote_user');
//$pass = $gen->getSetting('remote_pass');
//echo $host.$user.$pass;
$ssh = new Net_SSH2($host);
if(!$ssh->login($user, $pass)) {
exit('Login Failed');
}
print_r($ssh->exec('pwd'));
print_r($ssh->exec('ls -la'));
?>
我启用了所有我在php.ini中看到的错误日志optiosn,我甚至指定日志错误php_error.log,我以为这个文件将在同一目录为php.ini文件(在/ etc )没有看到它产生。然后我试着将它切换到/var/log/httpd/php_error.log,但我仍然没有看到它生成。
编辑:好了,所以我发现一些代码,会告诉我的错误,PHP's white screen of death
现在的错误是
E_NOTICE Error in file �test.php� at line 21: Undefined variable: db Fatal error: Call to a member function query() on a non-object in /var/www/html/sync/lib/test.php on line 21 E_ERROR Error in file �test.php� at line 21: Call to a member function query() on a non-object
线路21
$set_query =$db->query($set_sql);
我不知道我的mysql语句有什么问题,但它似乎是导致问题。
在终于出现错误以显示它是由$ mysqli实例在函数中不可用导致的$ db变量后,必须在该函数中创建一个新实例。
可能重复[PHP的死亡白屏](http://stackoverflow.com/questions/1475297/phps-white-screen-of-death) – Sherif