Два объекта соединения с Базой Данных (PHP+Mysql)


У меня возникла проблема в следующем:
Есть две функции которые работают с базой данных и принимают как один из аргументов соединение с БД
Функция соединения с БД:
function dbConnect(){
  $db = include_once $_SERVER['DOCUMENT_ROOT'] . "/db.php";
  $mysqli = new mysqli($db["hostname"],$db["username"], $db["password"], $db["dbname"]);
  if ($mysqli -> connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
    exit();
  };
  return $mysqli;
}

Функция которая принимает аргумент и объект соединения с базой данных

function InsertRejected($postback_data, $dbConnect){
$sql = "INSERT INTO applications(ConversionID,ClientID,Status,LeadsOfferId,SmsId) VALUES ({$postback_data["id_con"]}, {$postback_data["client_id"]}, 2, {$postback_data["adv_sub"]}, {$postback_data["sms_mailing"]}) on duplicate key update Status = 2";
  $dbConnect -> query($sql);
  $dbConnect->close();
}

А так-же функция которая так-же делает запрос в БД, так-же принимает в себя объект соединения с Базой данных в качестве аргумента

function sendRejectionSMS($clientID, $dbConnect){

  $sql = "SELECT * FROM clients WHERE ID = {$clientID}";
  $result = $dbConnect -> query($sql);
  $row = $result -> fetch_all(MYSQLI_ASSOC);
  $dbConnect->close();

  // Подключаемся к СМС сервису
  $url = "url";
  $ch = curl_init();

  $data = [
    'action' => 'sendmessage',
    'username' => 'name',
    'password' => 'pass',
    'recipient' => pass,
    'messagetype' => 'SMS:TEXT',
    'originator' => 'KiT_Notify',
    'messagedata' => "Оформите займ без %. Вам доступно до 130.000 тг. cly.kz/4&{$clientID}"
  ];

  $data = http_build_query($data);
  $header = array('Content-Type: application/x-www-form-urlencoded');
  curl_setopt($ch, CURLOPT_URL,$url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POST ,1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  $returned = curl_exec($ch);
  curl_close ($ch);
  echo "<br>" . $returned;
}

Функции работают по отдельности, но при попытке вызвать их один за другим выбрасывает ошибка
Warning: mysqli::__construct(): (HY000/1045): Access denied for user ''@'localhost' (using password: NO) in /var/www/vhosts/def.kz/cly.kz/models/model_postback.php on line 5 Failed to connect to MySQL: Access denied for user ''@'localhost' (using password: NO)
Например:

InsertRejected($postback_data, dbConnect());
sendRejectionSMS($postback_data["client_id"], dbConnect());

Объекты соединения закрываю после запросы в БД, как я понял они дублируются, поэтому и выходит ошибка, прошу помочь найти решение проблемы


Ответы (0 шт):