PHP: MySQLi Connection доступно в методах - PullRequest
0 голосов
/ 20 октября 2018

что я должен изменить, чтобы передать $ con методам внутри класса?

Он должен быть доступен "public" или что-то в этом роде.

class MyClass {

public function __construct()
{
    $con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
    mysqli_select_db($con, "db100...") or die("Error");
}

public function doSomething()
{
    mysqli_query($con, "");
}

}  

Спасибо!

PS: я не хочу $ this-> db-> query () или что-то еще:)

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Вы можете сделать это так:

class MyClass {

  public $con

  public function __construct()
  {
    $this->con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
    mysqli_select_db($this->con, "db100...") or die("Error");
  }

  public function doSomething()
  {
    mysqli_query($this->con, "");
  }

} 

... или вот так:

global $con; 

class MyClass {

  public function __construct()
  {
    global $con;
    $con=mysqli_connect("localhost", "dbu...", "pw") or die("Error");
    mysqli_select_db($con, "db100...") or die("Error");
  }

  public function doSomething()
  {
    global $con;
    mysqli_query($con, "");
  }

} 

Первый вариант рекомендуется, поскольку второй может вызвать конфликты пространства имен

0 голосов
/ 20 октября 2018

Если вы хотите придерживаться процедурной версии mysqli, в объектно-ориентированном классе вам все равно нужно будет использовать $this, но немного по-другому:

class MyClass {
    private $con;
    public function __construct()
    {
        $this->con = mysqli_connect("localhost", "dbu...", "pw") or die("Error");
        mysqli_select_db($this->con, "db100...") or die("Error");
    }

    public function doSomething()
    {
        mysqli_query($this->con, "");
    }
}

В идеале, если выВы придерживаетесь объектной нотации, вы должны просто пройти объектно-ориентированный до конца:

class MyClass {
    private $con;
    public function __construct()
    {
        $this->con = new mysqli("localhost", "dbu...", "pw") or die("Error");
        $this->con->select_db("db100...") or die("Error");
    }

    public function doSomething()
    {
        $this->con->query("");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...