在我的php中,我从其他php调用数据库连接,但是在这里我感到困惑,它没有回显当前的php echo
这是我的db.php代码
<?php
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);
class Database {
private $con;
public function connect (){
include_once("constant.php");
$this->con = new Mysqli(HOST,USER,PASS,DB);
if ($this->con->connect_error) {
echo"connect fails";
//return $this->con;
}else{echo "connection success";}
//return "DATABASE_CONNECTION_FAIL";
}
}
$db = new Database();
$db->connect();
?>
这是我的user.php代码
<?php
/**
* user class for account creation and login purpose
*/
class User {
private $con;
function __construct(){
include_once("../database/db.php");
$db = new Database();
$this->con = $db->connect();
if($this->con) {
echo "connect databases";
}
}
}
$obj = new User();
?>
在我的浏览器中,我打电话给user.php,但是我得到了connection success connection success
的回声,它重复了2次,但是在user.php中却没有显示
我期望的回声是connect databases
答案 0 :(得分:0)
连接成功后。您应该返回连接。
在db.php代码下面尝试
<?php
// ini_set('display_errors', 1);
// ini_set('display_startup_errors', 1);
// error_reporting(E_ALL);
class Database {
private $con;
public function connect() {
include_once("constant.php");
$this->con = new Mysqli(HOST, USER, PASS, DB);
if ($this->con->connect_error) {
echo"connect fails";
}
else {
// return successful connection
return $this->con;
}
}
}
$db = new Database();
$db->connect();
?>
答案 1 :(得分:0)
user.php 中的此行调用 Database 类中的 connect()函数。这也会回显第一个“连接成功” 字符串:
$this->con = $db->connect();
user.php 中的这一行再次调用 Database 类中的 connect()函数,并打印第二个 “连接成功” 字符串。
if($this->con) { ... }
user.php 中的这些行不起作用,因为 connect()函数不返回任何内容:
if($this->con) {
echo "connect databases";
}
如果只需要“连接数据库” return 语句在 Database 类if-else块中替换回显。 >字符串结果:
if ($this->con->connect_error) {
return false;
} else {
return true;
}