Pdo\Pgsql::setNoticeCallback

バックエンドが生成する通知および警告メッセージを処理するコールバックを設定する

説明

public void Pdo\Pgsql::setNoticeCallback(callablenull $callback)

バックエンドが生成する通知および警告メッセージを処理するためのコールバックを設定します。 これには、PostgreSQL 本体が出力するメッセージや、 ユーザー定義 SQL 関数で RAISE されたメッセージも含まれます。 これらのメッセージを実際に受信できるかは、バックエンド側の設定 client_min_messages に依存する点に注意してください。

パラメータ

callback
null を渡すと、ハンドラはデフォルトの状態にリセットされます。

それ以外の場合、ハンドラは次のシグネチャを持つコールバック関数です:

void handler(string $message)
message
バックエンドが生成したメッセージ

戻り値

値を返しません。

例1 Pdo\Pgsql::setNoticeCallback の例

<?php
$pdo = new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);

$pdo->exec('CREATE TABLE parent(id int primary key)');
$pdo->exec('CREATE TABLE child(id int references parent)');

$pdo->setNoticeCallback(function ($message) {
    echo $message;
});

$pdo->exec('TRUNCATE parent CASCADE');
?>

上の例の出力は、 たとえば以下のようになります。

NOTICE:  truncate cascades to table "child"