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文件时,我遇到了最初的步骤,即数据库连接,我上面写的代码并没有显示除空白之外的任何内容
答案 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);