我能';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)请尝试将127.0.0.1而不是localhost添加到配置中,好吗?还有,错误消息是什么?将调试添加到php代码中,这样您就可以在浏览器Adderror\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对于同一个变量名在我删除它时就产生了问题,但我怀疑它不是这样工作的。我知道