Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по mysql_errno в PHP

32K
26 мая 2008 года
otstoy55555
8 / / 15.01.2008
В PHP существуют 2 функции: mysql_errno и mysql_error. Одна возвращает код, а другая текст ошибки при вызове последней функции, работающей с MySQL. А вопросы собственно такие: существует ли в общем списке ошибок окно, для определения собственных ошибок более высокого уровня и можно ли где-то посмотреть полный список ошибок?
15
26 мая 2008 года
shaelf
2.7K / / 04.05.2005
Ошибки можно посмотреть в мане MySQL. Что значит свои ошибки?
32K
27 мая 2008 года
otstoy55555
8 / / 15.01.2008
Свои ошибки - это шибки определенные в собственных функциях для работы с базой, а не в стандартных. Например, стандартная функция - mysql_select_db("nonexistentdb") вернет ошибку 1049: Unknown database 'nonexistentdb'. А вот для нестандартной функций, пишущей в базу массив, может сложиться ситуация, когда одна из строк не будет записана в базу, а остальная часть информации удачно записана. В этом случае и хотелось бы определить свой код ошибки для ее дальнейшей корректной обработки. И этот код не должен пересекаться со стандартными кодами.
Номера сообщений об ошибках удалось найти в дистрибутиве MySQL в файлах errmsg.h (2000 - 2999) и mysqld_error.h (1000 - 1474) папки include.
Может кто знает, какие еще диапазоны кодов ошибок использовать не стоит?
15
27 мая 2008 года
shaelf
2.7K / / 04.05.2005
Номера и ошибки ты можешь использовать какие угодно. Просто напиши некий адаптер для работы с БД.
Код:
class Mysql_Exception extends Exception
{
    private $mysqlErrorList;
    private $mysqlErrnoList;

    private $myErrorList;
    private $myErrnoList;

    public function getError()
    {
        //Если есть ошибка, то возвращаем своё сопоставление.
        //То же самое делаем для errno
    }
}

class Mysql_Query
{
    public function query($sql)
    {
        $result = mysql_query($sql);
        if(mysql_error()) {
            throw new Mysql_Exception(); //Можно передать ошибку. Если не передавать, то через тот же mysql_error() мы получим в exception
        }
    }
}

$sql = "SELECT * FROM exemple";
$mq = new Mysql_Query();
try {
    $mq->query($sql);
} catch (Mysql_Exception $me) {
    echo $me->getError();
}


Общая идей понятна?
32K
28 мая 2008 года
otstoy55555
8 / / 15.01.2008
Конечно понятна. Только вот очень не хочется переопределять стандартные сообщения об ошибках.
15
28 мая 2008 года
shaelf
2.7K / / 04.05.2005
 
Код:
public function getMyError();
public function getMysqlError();
public function getMyErrno();
public function getMysqlErrno();


:)
32K
29 мая 2008 года
otstoy55555
8 / / 15.01.2008
И это понятно. Но надо:
public function getError();
public function getErrno();
Код ошибки анализируется скриптом в браузере клиента.
15
29 мая 2008 года
shaelf
2.7K / / 04.05.2005
Тебе в любом случае нужно рзделить на "твои ошибки" (переопределённые) и "родные ошибки". Никто не мешает писать
 
Код:
......
} catch(Mysql_Exception $me) {
    error_log($me->getMysqlError());
    echo $me->getMyError();
}

В данном случае ты хоть мух от котлет отделишь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог