У меня есть вопрос об использовании PDO, на который я не смог найти ответ. Вероятно, это тоже работает для соединений mysql/mysqli.Производит ли дублирование объекта PDO несколько соединений?
В основном включает мой проект, я создаю объект PDO с помощью
$pdo = new PDO('connection here');
Ну, у меня есть класс, который необходим доступ к базе данных. Итак, вместо использования «global $ pdo;» внутри каждой функции я сделал следующее.
class MyClass(){
private $db = null;
__construct(){
global $pdo;
$this->db = $pdo;
}
function example(){
$sql = 'A Query';
$this->db->prepare($sql);
}
}
Во всяком случае, мой вопрос, это делает это создает 2 соединения с базой данных, так как я фактически дублируя $ PDO, установив класс $ дб вар равный ему? Основная причина, по которой я спрашиваю, заключается в том, что я вижу, что это происходит много в нашей системе, и я заинтересован в создании слишком большого количества подключений к MySQL и избавлении системы от ненужных подключений.
Как часть вторая, имеет ли следующая причина дублирование, и могу ли я пройти мимо ref? Я немного боюсь попробовать его и заставить что-то сломать.
Изменить
function MyFunction($member_id, $pdo){
//do something.
}
Для
function MyFunction($member_id, &$pdo){
//do something
}
Спасибо!
Только что ответили ранее: [Назначение объекта PHP против клонирования] (http://stackoverflow.com/questions/16893949/php-object-assignment-vs-cloning). Ответ должен устранить вашу путаницу. – deceze
Это тот же объект, что и объекты всегда хранятся со ссылками – Voitcus
С другой стороны, связано ли соединение, возвращенное из старой школы mysql_connect(), под эти правила? – GameCharmer