Перебор параметров подключения

lalasha

Новичок
Здравствуйте! Как правильно перебирать параметры для подключения к базе данных? Я придумал вот такой вариант. Как еще можно? Меня смущает то, что я два раза создаю объект.


PHP:
<?php

class db_connect {

function __construct () {

    try{
        $pdoweb = new PDO ('mysql:host=localhost;dbname=ds_db;charset=utf8', 'root', '4321');
        echo "web - ok <br>";
    }
    catch (PDOException $e) {
        unset($pdoweb);
    }



try{
    $pdoloc = new PDO ('mysql:host=localhost;dbname=ds_db;charset=utf8', 'root', '1234');
    echo "loc - ok <br>";
}
catch (PDOException $e) {
    unset($pdoloc);
}

if ($pdoweb == true) {
$pdo = $pdoweb;
}
else {
unset($pdoweb);
}

if ($pdoloc == true) {
$pdo = $pdoloc;
}
else {
unset($pdoloc);
}

if ($pdo != true) {
    echo "db disconnect";
    unset($pdo);
}






}

}
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Правильно не использовать рута вообще для работы приложения.
 

WMix

герр M:)ller
Партнер клуба
я так понимаю у тебя разные пароли на production и development окружениях.
логика выбора окружения должна быть снаружи.
PHP:
//conf.php на разных серверах этот файл разный
return [
    'db' => [
        'host' => 'localhost',
        'dbname' => 'ds_db',
        'user'   => 'root',
        'pass' => '1234'
    ]
];
PHP:
//db_connect.php
class db_connect {
  function __construct ($config) {
    $pdo = new PDO ('mysql:host='.$config['host'].';dbname='.$config['dbname'].';charset=utf8', $config['user'], $config['pass']);
  }
}
PHP:
//main.php
$cfg = include('conf.php');
$db = new db_connect($cfg['db']);
 

Hello

Новичок
@lalasha, создай массив, каждым элементом которого будет настройки для pdo, и в цикле пробуй подключиться
PHP:
foreach ($settings as $setting) {
    try{
        $pdo = new PDO ($setting['dsn'], $setting['user'], $setting['password']);
        break;
    }
    catch (PDOException $e) {/*log here*/}
}

if (empty($pdo)) {
    echo "db disconnect";
    unset($pdo);
}
 
Сверху