Получить сообщение об ошибке MySQL только из кода ошибки

Какой смысл в кодах ошибок MySQL (например, 1054)?

Сообщения об ошибках содержат фактическую информацию, поэтому должен быть какой-то способ получить дополнительную информацию из кодов ошибок.

Но что я могу использовать, чтобы получить что-либо только из кода ошибки по сравнению с сообщением об ошибке?

Обычно вы получаете оба с:

<?PHP
$db_link = new mysqli($hostname, $username, $password, $database);

$statement = $db_link->prepare('SELECT SomeFieldThatDoesNotExist FROM Person');
$statement->execute();

if(!$statement) {
$specific_error = $db_link->error;
$error_number = $db_link->errno;
}
?>

Представьте, что у меня ошибка 1054 (см .: https://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html#error_er_bad_field_error).

С помощью всего лишь 1054, что я могу использовать, чтобы получить само сообщение об ошибке MySQL?

0

Решение

использовать ОШИБКИ ШОУ;

Руководство : https://mariadb.com/kb/en/mariadb/show-errors/

SELECT f();
ERROR 1305 (42000): FUNCTION f does not exist

SHOW COUNT(*) ERRORS;
+-----------------------+
| @@session.error_count |
+-----------------------+
|                     1 |
+-----------------------+

SHOW ERRORS;
+-------+------+---------------------------+
| Level | Code | Message                   |
+-------+------+---------------------------+
| Error | 1305 | FUNCTION f does not exist |
+-------+------+---------------------------+
0

Другие решения

Используйте коды ошибок MySQL PHP lib на Github: https://github.com/HoldOffHunger/mysql-errors-codes .

Нормальный стиль сообщений об ошибках:

$db_link = new mysqli($this->hostname,$this->username,$this->password);
print($db_link->connect_errno . " : " . $db_link->connect_error);

Нормальный вывод сообщений об ошибках:

13236 : Message: Newly created data directory SOMEDIRECTORY is unusable. You can safely remove it.

Новый, более полный стиль сообщений об ошибках:

$mysql_error = new MySQLErrorCode();
$error_codes = $mysql_error->ErrorCodes();

print_r($error_codes[13236]);

Выход :

13236 : Message: Newly created data directory SOMEDIRECTORY is unusable. You can safely remove it.

'13236' => [
'error_code' => '13236',
'internal_code' => 'ER_DATA_DIRECTORY_UNUSABLE',
'message_template' => 'Message: Newly created data directory %s is unusable. You can safely remove it.',
'sql_state' => 'HY000',
'version_information' => 'ER_DATA_DIRECTORY_UNUSABLE was added in 8.0.13.'
],
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector