pdoexception

sQula

Администратор Innova Group
Местный
Победитель в номинации 2019
Танкист
Стрелок
Веселый флудер
Любитель реакций
За заслуги перед форумом
Стальной Визионер
Победитель в номинации 2018
Сообщения
490
Розыгрыши
0
Репутация
202
Реакции
327
Баллы
733
Беда в чем, при потере конекта сайта к бд сервера, вылезает ошибка
куда копать, и что писать:D
дабы данные кэшировались, и сайт не падал при потери конекта.
Код:
PDOException in Connector.php line 47:
SQLSTATE[HY000] [1044] Access denied for user '****'@'localhost' to database '******'

Код:
	public function createConnection($dsn, array $config, array $options)
	{
		$username = array_get($config, 'username');

		$password = array_get($config, 'password');

		return new PDO($dsn, $username, $password, $options);
	}
 

try/catch и все такое во всех нужных местах - в соединении с бд и т.д.
 
дабы данные кэшировались, и сайт не падал при потери конекта.
тогда лучше писать на чистом Go, и не юзать вонючий Laravel. Если ты думаешь что таким способом выиграешь в производительности, то ошибаешься, ты уже проиграл в производительности ещё до старта гонки.
Вообще для начала проверь правильная ли структура в $dns, а во вторых проверь привилегии пользователя в MySQL.
 
тогда лучше писать на чистом Go, и не юзать вонючий Laravel. Если ты думаешь что таким способом выиграешь в производительности, то ошибаешься, ты уже проиграл в производительности ещё до старта гонки.
Вообще для начала проверь правильная ли структура в $dns, а во вторых проверь привилегии пользователя в MySQL.
почему Laravel то вонючий????
 
тогда лучше писать на чистом Go, и не юзать вонючий Laravel. Если ты думаешь что таким способом выиграешь в производительности, то ошибаешься, ты уже проиграл в производительности ещё до старта гонки.
Вообще для начала проверь правильная ли структура в $dns, а во вторых проверь привилегии пользователя в MySQL.
Тс - ты хочешь исправить продлему, или ее избежать? Это коннент к какой бд? Основной блок сайта или екстернал сервер?

Ну не скажи, уверен все проблемы в правильности использования.

Первый запрос в гугле, и увидел что можно связать лару и варниш без особых проблем, в итоге до 100 мс будет возвращаться страница.
Часто легче исаолиспольз уже готоаыг решения... Зависит от бюджета и хотелки
 
тогда лучше писать на чистом Go, и не юзать вонючий Laravel. Если ты думаешь что таким способом выиграешь в производительности, то ошибаешься, ты уже проиграл в производительности ещё до старта гонки.
Вообще для начала проверь правильная ли структура в $dns, а во вторых проверь привилегии пользователя в MySQL.

тут не в привилегиях дело, это соединение именно с базой сервера, для регистрации акк+статус сервера, если она не доступна сайт падает с данной ошибкой.

Тс - ты хочешь исправить продлему, или ее избежать? Это коннент к какой бд? Основной блок сайта или екстернал сервер?

Ну не скажи, уверен все проблемы в правильности использования.

Первый запрос в гугле, и увидел что можно связать лару и варниш без особых проблем, в итоге до 100 мс будет возвращаться страница.
Часто легче исаолиспольз уже готоаыг решения... Зависит от бюджета и хотелки

данную cms писал не я, и я не особо разбираюсь в этом) готов на платной основе на допил данного продукта.
 
Как-то так должно быть, дальше делай под себя.
PHP:
    public function createConnection($dsn, array $config, array $options){
        $username = array_get($config, 'username');
        $password = array_get($config, 'password');
        try {
            return new PDO($dsn, $username, $password, $options);
        } 
        catch (Throwable $t) {
            // Для пыха 7 
            echo 'Нет соденинения с БД...';
        } catch (Exception $e) {
            // Для пыха 5
            echo 'Нет соденинения с БД...';
        } 
    }
 
Как-то так должно быть, дальше делай под себя.
PHP:
    public function createConnection($dsn, array $config, array $options){
        $username = array_get($config, 'username');
        $password = array_get($config, 'password');
        try {
            return new PDO($dsn, $username, $password, $options);
        } 
        catch (Throwable $t) {
            // Для пыха 7 
            echo 'Нет соденинения с БД...';
        } catch (Exception $e) {
            // Для пыха 5
            echo 'Нет соденинения с БД...';
        } 
    }
PHP:
		    public function createConnection($dsn, array $config, array $options){
        $username = array_get($config, 'username');
        $password = array_get($config, 'password');
        try {
            return new PDO($dsn, $username, $password, $options);
			} 
			catch (Exception $e) {
            echo 'Нет соденинения с БД...';
        } 
    }
что-то не прокатило, ошибка таже
 
Хотя возможно кеш виноват.

p.s не, не он.
не прокатило
 
Попробуй
catch( PDOException $е) {
 
Попробуй
catch( PDOException $е) {
PHP:
	public function createConnection($dsn, array $config, array $options)
	{
		$username = array_get($config, 'username');
		
		$password = array_get($config, 'password');
	try {
			return new PDO($dsn, $username, $password, $options);
		} 
		catch (PDOException $е) 
		{
			echo 'Нет соденинения с БД...';
		} 
	}
и так не прокатило(
 
может вообще не тут копаю?
 
Попробуй так.
PHP:
 public function createConnection($dsn, array $config, array $options)
    {
        $username = array_get($config, 'username');
      
        $password = array_get($config, 'password');
    try {
            $pdo = new PDO($dsn, $username, $password, $options);
return $pdo;
        }
        catch (PDOException $е)
        {
            echo 'Нет соденинения с БД...';
            die(); // тут должно выкинуть.
        }
    }

Но даже если заведется, то это просто костылише.
Если хочешь могу рассказать как переделать.
 
Попробуй так.
PHP:
 public function createConnection($dsn, array $config, array $options)
    {
        $username = array_get($config, 'username');
      
        $password = array_get($config, 'password');
    try {
            $pdo = new PDO($dsn, $username, $password, $options);
return $pdo;
        }
        catch (PDOException $е)
        {
            echo 'Нет соденинения с БД...';
            die(); // тут должно выкинуть.
        }
    }

Но даже если заведется, то это просто костылише.
Если хочешь могу рассказать как переделать.
не прокатило:(
 
А в чем фокус?)
Выделили память на переменную которую сразу же и возвращаем! xD
Магия пхп.
Дак а чё у него ексепшн не ловит?
Я хз.
+ 7+ пхп уже не такой тупой)
То что z выделил, и вернул, то пыха просто работает с ссылкой в памяти, и это только тут выглядит как костыль полный, под капотом чуть умнее работает)
 
Назад
Сверху Снизу