Как я могу получать стоимость между [] от String?

Когда постглинистый песчаник посылает ошибку, он посылает сообщение с кодом, примером:

SQLSTATE [23505]: Unique violation: 7 ОШИБКА: дублированный ключ нарушает ограничение unicidad «cargos_index_lower_unique» DETAIL: Уже существует ключ (lower (имя:: text)) = (Инженер). (SQL: insert into "налоги" ("имя", "updated_at", "created_at") оцени (инженер, 2016-11-08 11:07:58, 2016-11-08 11:07:58) returning "пойдите")

Как я могу получать стоимость "SQLSTATE [23505]"? параметр существует для Exception, где он смог делать это? или: я должен отделять все остальное вручную?

0
задан 01.05.2017, 21:50
2 ответа

Доказательство со следующим примером (это - это... пример):

    try
    {
        //aqui tu codigo que genera la exception
    }
    //atrapa la exception de sql
    catch(QueryException $e)
    {
        //...and do whatever you want
        return response()->view('my.error.view', [], 500);    
    }

QueryException получает в наследство PDOException, у которого есть метод getCode, где - код ошибки. С этим у тебя не было бы, что parsear какой-либо string.

Оно ты было бы должно функционировать.

1
ответ дан 24.11.2019, 12:42
  • 1
    Спасибо друг, использовал getCode и я я функционирую, для которого quer и # 237; в. В документе, который меня вел солитер только 3 м и # 233; все, он не знал, что он получал в наследство PDOException, и ищите в Вебе php. php.net/manual/es/class.pdoexception.php – Pablo Contreras 08.11.2016, 18:05

Способ получать вышеупомянутый код string - играя с положениями, основным примером:

$errorMsg = 'SQLSTATE[23505]: Unique violation: 7 ERROR: llave duplicada viola restricción de unicidad «cargos_index_lower_unique» ....';

$startPos = strpos($errorMsg, '[') + 1;

$endPos = strpos($errorMsg, ']');

$errorCode = substr($errorMsg, $startPos, $endPos - $startPos);
1
ответ дан 24.11.2019, 12:42

Теги

Похожие вопросы