致命错误:未捕获错误:在文件位置

时间:2017-06-02 17:34:04

标签: php

我正在创建一个面向对象的登录,这是我的数据库类页面。

 <?php
class DB {
    private static $_instance = null;
    private $_pdo,
            $_query,
            $_error= false,
            $_results,
            $_count = 0;






    public function _construct(){
            try{
                $this->_pdo = new 
        PDO('mysql:host='.Config::get('mysql/host').'
         ;dbname='.Config::get('mysql/db')

            Config::get('mysql/username'),Config::get('mysql/password'));
                echo 'Connected';
            } catch(PDOException $e){
                die($e->getMessage());

            }

    }

    public static function getInstance(){
            if(!isset(self::$_instance)){
                self::$_instance = new DB();

            }
            return self::$_instance;
    }

    public function query($sql, $params =array()){
        $this->_error = false;
        if($this->_query=$this->_pdo->prepare($sql)){
            echo 'Success';
        }  


    }

}


?>

这是我用来测试程序接受查询的能力的索引页面。我尝试运行此页面时收到此错误

致命错误:未捕获错误:在C:\ xampp \ htdocs \ objectorientedlogin \ classes \ DB.php中调用null上的成员函数prepare():36堆栈跟踪:#0 C:\ xampp \ htdocs \ objectorientedlogin \ index.php(4):DB-&gt;查询(&#39; SELECT用户名...&#39;)#1 {main}在C:\ xampp \ htdocs \ objectorientedlogin \ classes \ DB.php中引发36

<?php
require_once 'core/init.php';

DB::getInstance()->query("SELECT username FROM users");
?>

这是我的init.php页面,其中包含一个用于加载每个类的自动加载器。

<?php
session_start();

$GLOBALS['config']= array(
'mysql'=> array(
    'host'=>'127.0.0.1',
    'username'=> 'root',
    'password'=>'',
    'db'=>'oop_login'
    ),
'remember'=>array(
    'cookie_name'=>'hash',
    'cookie_expiry'=>604800
    ),
'session'=> array(
    'session_name'=> 'user'
    ),

);

  spl_autoload_register(function($class){

require_once 'classes/'.$class.'.php';
});

  require_once 'functions/sanitize.php';



?>

这是我的配置页

<?php
 Class Config{

 public static function get($path=null){
    if($path){
        $config = $GLOBALS['config'];
        $path = explode('/',$path);

        foreach($path as $bit){
            if(isset($config[$bit])){
                $config = $config[$bit];
            }
        }
        return $config;

    }

}

}

?>

1 个答案:

答案 0 :(得分:0)

你有<script> var xmlhttp = new XMLHttpRequest(); var resp = "" xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200){ resp = xmlhttp.responseText; resp = JSON.parse(resp); document.write(resp); } } var check = "Hello"; function show(){ xmlhttp.open("POST","http://localhost:3000/count", true); xmlhttp.send(JSON.stringify(check)); </script> 的拼写错误。它应该是_construct

__construct