эхо базы данных php сбивает с толку для следующего кода - PullRequest
0 голосов
/ 28 марта 2019

в моем 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();
?>

и это мой пользователь.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

enter image description here

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Эта строка в вашем user.php вызывает функцию connect () в вашем классе Database .Это также перекликается с первой «успешной установкой соединения» string:

$this->con = $db->connect();

Эта строка в вашем user.php снова вызывает connect () функционирует в вашем базе данных классе и печатает вторую "успешную связь" строку.

if($this->con) { ... }

Эти строки в вашем user.php не работает, потому что функция connect () ничего не возвращает:

if($this->con) {
  echo "connect databases";
}

Вы можете заменить эхо-сигналы в блоке if-else класса Database на вернуть операторы, подобные этому, если вам нужен только «соединить базы данных» строковый результат:

if ($this->con->connect_error) {
  return false;
} else {
  return true;
}
1 голос
/ 28 марта 2019

После успешного подключения. Вы должны вернуть соединение.

попробуйте это ниже 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();
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...