我无法使用php连接到我的localhost

时间:2016-11-09 12:53:00

标签: php android

DbConnect.php

<?php

/**
 * Handling database connection

 */
 include_once ('Config.php');

class DbConnect {

    private $conn;

    function __construct() { 

    }

    /**
     * Establishing database connection
     * @return database connection handler
     */
    function connect() {

        // Connecting to mysql database
        $this->conn = new mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

        // Check for database connection error
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            exit;
        }


        // returing connection resource
        return $this->conn;
    }

}
 class DbHandler {

private $conn;

function __construct() {

    // opening db connection
    $db = new DbConnect();
    $this->conn = $db->connect();
}}

?>

config.php

<?php
/**
 * Database configuration
 */
define('DB_USERNAME', 'medma');
define('DB_PASSWORD', 'medma');
define('DB_HOST', 'localhost');
define('DB_NAME', 'medma_sameer');


/**
 * MSG91 configuration
 */
define('MSG91_AUTH_KEY', "130558AmTMgKzL582187bb");
// sender id should 6 character long
define('MSG91_SENDER_ID', 'MEDMA1');

define('USER_CREATED_SUCCESSFULLY', 0);
define('USER_CREATE_FAILED', 1);
define('USER_ALREADY_EXISTED', 2);
?>

请告诉我虽然我在Not able to hit api to verify otp ( Used Volley)之前发布了可能会出现什么问题 但是当我开始测试我已安装的localhost文件夹中的每个php文件时,我遇到了最初的步骤,即数据库连接,我上面写的代码并没有显示除空白之外的任何内容

2 个答案:

答案 0 :(得分:2)

这里有2个问题可能导致页面空白:

首先,您实际上并未在脚本中输出任何内容,至少在您发布的代码中没有。

更大的问题是,这可能是错误的,因为您似乎不在方法/类中:

 $db = new DbConnect();
 $this->conn = $db->connect();

$this在方法的范围内定义,因此使用它就像你正在做的那样会导致致命的错误:

  

致命错误:在不在...中的对象上下文中时使用$ this

作为旁注:如果要显示变量的内容,则应使用var_dump()而不是echo,因为最后一个只为数字和字符串提供任何有意义的输出;不适用于数据库连接。

答案 1 :(得分:1)

首先,你在这里调用连接

 $db = new DbConnect();
 $this->conn = $db->connect();

您不能以这种方式访问​​此范围内的属性conn(类外) 您可以使用$db->conn执行此操作。但是,在这种情况下,您无法访问它以及它是private

如果您想使用课程这样做,可以尝试

$db = new DbConnect();
$conn = $db->connect();

并在$conn下有一个数据库连接。

@edit: 也许试试这个

<?php
include_once ('Config.php');

/**
 * Handling database connection
 */
class DbConnect {

    private static $_instance; //The single instance
    private $_conn;

    public static function getInstance() {
       if(!self::$_instance) { // If no instance then make one
          self::$_instance = new self();
       }
       return self::$_instance;
    }

    private function __construct() { 
        // Connecting to mysql database
        $this->_conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

        // Check for database connection error
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            exit;
        }
    }
    // Get connection
    function getConnection() {
        return $this->_conn;
    }

}

要建立与数据库的连接,您可以这样做

$db = DbConnect::getInstance();
$conn = $db->getConnection();
$query= "SELECT foo FROM .....";
$result = $conn->query($query);