Forum und email

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice — Gibt die letzte NOTICE-Meldung des PostgreSQL-Servers zurück

Beschreibung

string pg_last_notice ( resource $connection )

pg_last_notice() gibt die letzte NOTICE-Meldung des PostgreSQL Servers für die angegebene connection zurück. Der PostgreSQL-Server sendet zu unterschiedlichen Anlässen NOTICE-Meldungen an den Client, beispielsweise, wenn in einer Tabelle eine Spalte vom Typ SERIAL erzeugt wurde.

Mit pg_last_notice() kann das Senden überflüssiger Abfragen vermieden werden, indem man prüft, ob eine NOTICE-Meldung sich auf die aktuelle Transaktion bezieht oder nicht.

Warnung

Diese Funktion ist EXPERIMENTELL und noch nicht vollständig implementiert. pg_last_notice() wurde mit der Version 4.0.6 eingeführt. Diese Version hat jedoch Probleme mit der Verarbeitung der NOTICE-Meldungen. Von der Benutzung des PostgreSQL-Moduls mit PHP 4.0.6 wird abgeraten, auch wenn Sie die Funktion pg_last_notice() nicht nutzen.

Diese Funktion ist seit PHP 4.3.0 vollständig implementiert. In PHP-Versionen davor wird der Parameter connection ignoriert.

Die Verfolgung von Notice-Benachrichtigungen kann ab PHP 4.3.0 auf optional gesetzt werden, indem die Direktive pgsql.ignore_notice in php.ini den Wert 1 erhält.

Die Protokollierung von Notice-Benachrichtigungen kann ab PHP 4.3.0 auf optional gesetzt werden, indem die Direktive pgsql.log_notice in php.ini den Wert 1 erhält. Wenn die Direktive pgsql.ignore_notice den Wert 0 hat, können keine Notice-Benachrichtigungen protokolliert werden.

Parameter Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

Ein string, der die letzte NOTICE-Meldung für die übergebene connection enthält oder FALSE, falls ein Fehler auftrat.

Beispiele

Example#1 pg_last_error() Beispiel

<?php
  $pgsql_conn 
pg_connect("dbname=mark host=localhost");
  
  
$res pg_query("CREATE TABLE test (id SERIAL)");
  
  
$notice pg_last_notice($pgsql_conn);
  
  echo 
$notice;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"