ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   pdoexception (https://forum.antichat.xyz/showthread.php?t=770642)

sQula 30.10.2018 16:06

Беда в чем, при потере конекта сайта к бд сервера, вылезает ошибка

куда копать, и что писать

дабы данные кэшировались, и сайт не падал при потери конекта.

Код:


Код:

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);
        }


Gaikotsu 30.10.2018 19:57

try/catch и все такое во всех нужных местах - в соединении с бд и т.д.

Logan22 30.10.2018 21:26

Цитата:

Сообщение от sQula

дабы данные кэшировались, и сайт не падал при потери конекта.

тогда лучше писать на чистом Go, и не юзать вонючий Laravel. Если ты думаешь что таким способом выиграешь в производительности, то ошибаешься, ты уже проиграл в производительности ещё до старта гонки.

Вообще для начала проверь правильная ли структура в $dns, а во вторых проверь привилегии пользователя в MySQL.

Desquire 30.10.2018 21:47

Цитата:

Сообщение от Logan22

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

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

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

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

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

sQula 30.10.2018 22:15

Цитата:

Сообщение от Logan22

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

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

Цитата:

Сообщение от Desquire

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

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

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

данную cms писал не я, и я не особо разбираюсь в этом) готов на платной основе на допил данного продукта.

Logan22 30.10.2018 22:19

Цитата:

Сообщение от sQula

если она не доступна сайт падает с данной ошибкой

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

Logan22 30.10.2018 22:22

Как-то так должно быть, дальше делай под себя.

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
'Нет соденинения с БД...'
;
}
}


sQula 30.10.2018 22:41

Цитата:

Сообщение от Logan22

Как-то так должно быть, дальше делай под себя.

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
'Нет соденинения с БД...'
;
}
}

что-то не прокатило, ошибка таже

sQula 30.10.2018 22:50

Хотя возможно кеш виноват.

p.s не, не он.

не прокатило

Desquire 30.10.2018 23:10

Попробуй

catch( PDOException $е) {


Время: 11:42