Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Find the position of the first occurrence of a substring in a string
<?php strpos(string $haystack, string $needle, int $offset = 0): int|false
<?php             case '0A000':



                if (strpos($exception->getMessage(), 'truncate') !== false) {

                    return new ForeignKeyConstraintViolationException($exception, $query);

                }
<?php         if ($exception->getCode() === 7 && strpos($exception->getMessage(), 'SQLSTATE[08006]') !== false) {

            return new ConnectionException($exception, $query);

        }
<?php     public function convert(Exception $exception, ?Query $query): DriverException

    {

        if (strpos($exception->getMessage(), 'database is locked') !== false) {

            return new LockWaitTimeoutException($exception, $query);

        }
<?php         }



        if (

            strpos($exception->getMessage(), 'must be unique') !== false ||

            strpos($exception->getMessage(), 'is not unique') !== false ||

            strpos($exception->getMessage(), 'are not unique') !== false ||

            strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false
<?php         if (

            strpos($exception->getMessage(), 'must be unique') !== false ||

            strpos($exception->getMessage(), 'is not unique') !== false ||

            strpos($exception->getMessage(), 'are not unique') !== false ||

            strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false

        ) {
<?php         if (

            strpos($exception->getMessage(), 'must be unique') !== false ||

            strpos($exception->getMessage(), 'is not unique') !== false ||

            strpos($exception->getMessage(), 'are not unique') !== false ||

            strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false

        ) {

            return new UniqueConstraintViolationException($exception, $query);
<?php             strpos($exception->getMessage(), 'must be unique') !== false ||

            strpos($exception->getMessage(), 'is not unique') !== false ||

            strpos($exception->getMessage(), 'are not unique') !== false ||

            strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false

        ) {

            return new UniqueConstraintViolationException($exception, $query);

        }
<?php         }



        if (

            strpos($exception->getMessage(), 'may not be NULL') !== false ||

            strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false

        ) {

            return new NotNullConstraintViolationException($exception, $query);
<?php         if (

            strpos($exception->getMessage(), 'may not be NULL') !== false ||

            strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false

        ) {

            return new NotNullConstraintViolationException($exception, $query);

        }
<?php             return new NotNullConstraintViolationException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'no such table:') !== false) {

            return new TableNotFoundException($exception, $query);

        }
<?php             return new TableNotFoundException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'already exists') !== false) {

            return new TableExistsException($exception, $query);

        }
<?php             return new TableExistsException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'has no column named') !== false) {

            return new InvalidFieldNameException($exception, $query);

        }
<?php             return new InvalidFieldNameException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'ambiguous column name') !== false) {

            return new NonUniqueFieldNameException($exception, $query);

        }
<?php             return new NonUniqueFieldNameException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'syntax error') !== false) {

            return new SyntaxErrorException($exception, $query);

        }
<?php             return new SyntaxErrorException($exception, $query);

        }



        if (strpos($exception->getMessage(), 'attempt to write a readonly database') !== false) {

            return new ReadOnlyException($exception, $query);

        }