我能';t使用php连接到我的本地主机 DbConnect.php config.php

我能';t使用php连接到我的本地主机 DbConnect.php config.php,php,android,Php,Android,请告诉我可能是什么问题,虽然我已经张贴过 但是当我开始在我挂载的localhost文件夹上测试每个php文件时,我被最初的步骤卡住了,那就是数据库连接。我上面写的代码除了空白之外没有显示任何内容。这里有两个问题可能会导致页面空白: 首先,您实际上没有在脚本中输出任何内容,至少在您发布的代码中没有 更大的问题是,这可能是错误的,因为您似乎不在方法/类中: DbConnect.php <?php /** * Handling database connection */ inclu

请告诉我可能是什么问题,虽然我已经张贴过
但是当我开始在我挂载的localhost文件夹上测试每个php文件时,我被最初的步骤卡住了,那就是数据库连接。我上面写的代码除了空白之外没有显示任何内容。

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

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

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

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);
?>
$此
是在方法的范围内定义的,因此像您这样使用它会导致致命错误:

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


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

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

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

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

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);
?>
$此
是在方法的范围内定义的,因此像您这样使用它会导致致命错误:

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


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

首先,您可以在此处调用连接

 $db = new DbConnect();
 $this->conn = $db->connect();
您不能以这种方式访问此范围内(类之外)的属性
conn
您可以使用
$db->conn
执行此操作。但是,在这种情况下,您无法访问它,因为它是一个
专用的

如果你想用你的类来做这件事,你可以试试

 $db = new DbConnect();
 $this->conn = $db->connect();
$conn
u下有一个db连接

@编辑: 也许试试这个

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

首先,在这里调用一个连接

 $db = new DbConnect();
 $this->conn = $db->connect();
您不能以这种方式访问此范围内(类之外)的属性
conn
您可以使用
$db->conn
执行此操作。但是,在这种情况下,您无法访问它,因为它是一个
专用的

如果你想用你的类来做这件事,你可以试试

 $db = new DbConnect();
 $this->conn = $db->connect();
$conn
u下有一个db连接

@编辑: 也许试试这个

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


请尝试将127.0.0.1而不是localhost添加到配置中,好吗?还有,错误消息是什么?将调试添加到php代码中,这样您就可以在浏览器Add
error\u报告(E\u ALL)中看到错误消息;ini设置(“显示错误”,1)error\u报告(E\u ALL)中看到错误消息;ini设置(“显示错误”,1)在顶部,然后查看输出是什么,@hrmc87写入时,一些连接需要端口号(例如mamp),因此访问url必须是localhost:8888/(将localhost留给db服务器)@Benoti可能是,处理OP的错误已经存在,将显示使用代码时的情况。@Benoti我们不需要提及默认端口,jeroen我会这样做,如果有任何错误,我会回来。正如@hrmc87所写,一些连接需要端口号(例如mamp),因此访问url必须是localhost:8888/(将localhost留给db服务器)@Benoti可能是,处理OP的错误已经发生,当代码被使用时会显示出来。@Benoti我们不需要提及默认端口和jeroen,我会这样做,如果有任何问题,我会回来。我已经更新了问题,请看一看,这就是我正在做的,但是$this for the the same variable name在我删除它时会产生问题,但我怀疑它不是这样工作的。我必须做$this->conn,因为变量名是相同的。因此,参考当前的类变量,我现在不完全理解你的问题。我看你已经更新了你的问题。你添加了一个新类。但是我很有趣为什么?目的何在?如果您只想通过调用
$db=new DbConnect
在一个变量中建立连接,那么您必须重建
DbConnect类。然而,我想你仍然有问题连接到服务器。您的连接位于
DbHandler类的
conn
变量中。但是您不能在此类之外访问它,因为它是
私有的
。请更具体一点,这样我可以帮助你我之所以这么做,是因为我想实现和这家伙一样的东西。这正是我正在做的,但我在这里使用了一个文件,不需要或包括数据库连接,我只在一个文件中简单地连接到数据库,即在两个不同的类中,其次是在两个不同的类中$conn变量与DbConnect类和其他DbHandler类不同,用于引用当前我使用的“this”关键字OK我可以看到您试图实现的目标。您可以在浏览器中访问此php文件吗?您是否可以添加
错误报告(E_ALL);ini设置(“显示错误”,1)
位于文件顶部,可能会显示错误?请检查文件
config.php
是否位于同一目录中,并检查其名称是否与您包含的名称相同(您首先使用大写字母-
Config.php
我已经更新了问题,请看一看这是我正在做的,但是$this对于同一个变量名在我删除它时就产生了问题,但我怀疑它不是这样工作的。我知道