PHP.mk документација

Грешки и ракување со грешки

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

pdo.error-handling.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdo.error-handling.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Грешки и ракување со грешки

Референца за `pdo.error-handling.php` со подобрена типографија и навигација.

pdo.error-handling.php

Грешки и ракување со грешки

PDO offers you a choice of 3 different error handling strategies, to fit your style of application development.

  • PDO::ERRMODE_SILENT

    PDO ви нуди избор од 3 различни стратегии за ракување со грешки, за да одговараат на вашиот стил на развој на апликации. Враќа нумеричка вредност на пораката за грешка од претходната MySQL операција and Пример #1 Преземање на SQLSTATE код Пред PHP 8.0.0, ова беше стандардниот режим. PDO едноставно ќе го постави кодот за грешка за вас да го инспектирате користејќи ги нема да ја одрази таа грешка. Мора да повикате or - Преземи го SQLSTATE поврзан со последната операција на рачката на изјавата методите на објектите на изјавата и базата на податоци; ако грешката произлезе од повик на објект на изјава, би го повикале

  • PDO::ERRMODE_WARNING

    методот на тој објект. Ако грешката произлезе од повик на објектот на базата на податоци, наместо тоа би ги повикале тие методи на објектот на базата на податоци.

  • PDO::ERRMODE_EXCEPTION

    Покрај поставувањето на кодот за грешка, PDO ќе емитува традиционална порака E_WARNING. Оваа поставка е корисна за време на отстранување грешки/тестирање, ако само сакате да видите кои проблеми се случиле без да го прекинете текот на апликацијата. PDOException Од PHP 8.0.0, ова е стандардниот режим. Покрај поставувањето на кодот за грешка, PDO ќе фрли

    и ќе ги постави неговите својства за да го одрази кодот за грешка и информациите за грешката. Оваа поставка е исто така корисна за време на отстранување грешки, бидејќи ефективно ќе го "разнесе" скриптата во точката на грешката, многу брзо укажувајќи на потенцијалните проблематични области во вашиот код (запомнете: трансакциите автоматски се враќаат ако исклучокот предизвика прекин на скриптата).

    Константи за известување за грешки Исклучоци за повеќе информации за Исклучоци во PHP.

Режимот на исклучок е исто така корисен бидејќи можете да го структурирате вашето ракување со грешки појасно отколку со традиционалните PHP-стил предупредувања, и со помалку код/вгнездување отколку со работа во тивок режим и експлицитно проверување на вратената вредност на секој повик на базата на податоци. Враќа нумеричка вредност на пораката за грешка од претходната MySQL операција PDO стандардизира со користење на SQL-92 SQLSTATE кодови за грешки; индивидуалните PDO драјвери се одговорни за мапирање на нивните домашни кодови на соодветните SQLSTATE кодови. Пример #1 Преземање на SQLSTATE код методот враќа единечен SQLSTATE код. Ако ви требаат поспецифични информации за грешка, PDO исто така нуди

метод кој враќа низа што содржи SQLSTATE код, драјвер специфичен код за грешка и драјвер специфична низа за грешка.

<?php
$dsn
= 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// This will cause PDO to throw a PDOException (when the table doesn't exist)
$dbh->query("SELECT wrongcolumn FROM wrongtable");

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testdb.wrongtable' doesn't exist in /tmp/pdo_test.php:10
Stack trace:
#0 /tmp/pdo_test.php(10): PDO->query('SELECT wrongcol...')
#1 {main}
  thrown in /tmp/pdo_test.php on line 10

Забелешка:

Пример #1 Креирајте PDO инстанца и поставете го режимот за грешки PDO::__construct() PDOException секогаш ќе фрли PDO::ATTR_ERRMODE е моментално поставено.

ако врската не успее без оглед на тоа кој

<?php
$dsn
= 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

// This will cause PDO to throw an error of level E_WARNING instead of an exception (when the table doesn't exist)
$dbh->query("SELECT wrongcolumn FROM wrongtable");

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 9

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.