Управление MySQLI - PullRequest
       5

Управление MySQLI

0 голосов
/ 08 января 2012

Благодаря постеру здесь, в SO, я начал использовать MySQLI и готовил заявления. Однако есть одна проблема, я не уверен, как адаптироваться к тому, как я использовал MySQL.

Раньше я открывал соединение с MySQL в начале моего основного сценария PHP. Тогда любой использованный мной сценарий или класс автоматически использовал бы то же соединение, просто вызвав вызов mysql_query ().

Теперь, с MySQLI, кажется, что если я хочу использовать соединение в классе, я должен либо пропустить соединение через конструктор, либо создать новое соединение MySQLI.

Есть ли способ использовать соединение MySQLI так же, как я использовал соединение MySQL раньше?

береги себя, подветренной

1 Ответ

1 голос
/ 08 января 2012

Передача соединения в конструктор часто является предпочтительным методом.Это называется «Внедрение зависимости» и полезно для тестирования программного обеспечения.

Однако, если вы предпочитаете не использовать этот метод, вы можете просто получить глобальный доступ к соединению внутри любого метода класса:

// MySQLi connection created in the global scope
$conn = new MySQLi(...);

class someClass {
  public someMethod() {
    // Call $conn with the global keyword
    global $conn;

    $conn->query(...);
  }
}

Хотя лучше хранить $conn в свойстве класса:

class someClass {
  // Connection property
  public $conn;

  public function __construct($conn) {
    $this->conn = $conn;
  }

  public someMethod() {
    $this->conn->query(...);
  }
}

Если вы используете MySQLi в процедурном контексте, а не объектно-ориентированном, вам потребуетсяпредоставить параметр ссылки.Там действительно нет пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...