Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
Hinweis:
Die Umgebungsvariablen INFORMIXDIR und INFORMIXSERVER müssen für den PHP-Treiber verfügbar sein und das INFORMIX bin-Verzeichnis muss im Pfad enthalten sein. Prüfen Sie diese Voraussetzungen mit einem Skript, das einen Aufruf von phpinfo() enthält, bevor Sie testen. Die Ausgabe von phpinfo() sollte diese Umgebungsvariablen auflisten. Dies ist sowohl für CGI PHP als auch Apache mod_php TRUE. Möglicherweise müssen Sie diese Umgebungsvariablen in Ihrem Apache Startskript setzen.
Die Informix shared libraries sollten für den Lader ebenfalls verfügbar sein (überprüfen Sie den LD_LIBRARY_PATH oder ld.so.conf/ldconfig).
Hinweis: Einige Anmerkungen zum Gebrauch von BLOBs (TEXT- und BYTE Felder)
BLOBs werden normalerweise durch blob-Identifikatoren adressiert. Select Abfragen geben eine "blob-ID" für alle TEXT- und BYTE-Felder zurück. Sie können die Inhalte mit "string_var = ifx_get_blob($blob_id);" auslesen, falls Sie die BLOBS in den Speicher schreiben möchten (mit "ifx_blobinfile(0);"). Wenn Sie die Inhalte von BLOB-Felder lieber in eine Datei ausgeben möchten, benutzen Sie "ifx_blobinfile(1);" und mit "ifx_get_blob($blob_id);" ermitteln Sie den Dateinamen. Mit den normalen I/O-Routinen des Dateisystems erhalten Sie die Inhalte von BLOBs.
Bei insert/update Abfragen müssen Sie diese "blob-ID's" mit der Funktion ifx_create_blob() selber erzeugen. Danach schreiben Sie die blob-ID's in ein Array und ersetzen die BLOB-Felder durch ein Fragezeichen (?) im Abfragestring. Für die Inhalte der BLOBs, die mit der Funktion ifx_update_blob() gesetzt werden, sind Sie bei updates/inserts selber verantwortlich.
Das Verhalten einer BLOB-Spalte kann auch zur Laufzeit durch Konfigurationsvariablen verändert werden.
Konfigurationsvariable: ifx.textasvarchar
Konfigurationsvariable: ifx.byteasvarchar
Laufzeitfunktionen:
ifx_textasvarchar(0): benutzt bei SELECT Abfragen von TEXT-Feldern die blob-ID
ifx_byteasvarchar(0): benutzt bei SELECT Abfragen von BYTE-Feldern die blob-ID
ifx_textasvarchar(1): gibt TEXT-Felder so zurück, als wären es VARCHAR Felder, so dass Sie keine blob-ID für select Abfragen brauchen.
ifx_byteasvarchar(1): gibt BYTE-Felder so zurück, als wären es VARCHAR Felder, so dass Sie keine blob-ID für select Abfragen brauchen.
Konfigurationsvariable: ifx.blobinfile
Laufzeitfunktionen:
ifx_blobinfile_mode(0): gibt BYTE-Felder in den Speicher zurück, mit der blob-ID können Sie auf den Inhalt zugreifen.
ifx_blobinfile_mode(1): gibt BYTE-Felder in einer Datei zurück, mit der blob-ID können Sie den Dateinamen ermitteln.
Wenn Sie ifx_text/byteasvarchar auf 1 setzen, können Sie TEXT- und BYTE-Felder in select Abfragen genauso benutzen, wie normale (allerdings sehr lange) VARCHAR-Felder. Da alle Zeichenketten in PHP "gezählt" werden, bleibt dies "binary safe". Es bleibt Ihnen überlassen, korrekt damit umzugehen. Die zurückgegebenen Daten können alles mögliche enthalten, so dass Sie für die Inhalte verantwortlich sind.
Wenn Sie ifx_blobinfile auf 1 setzen, benutzen Sie den Dateinamen, der von ifx_get_blob(..) zurückgegeben wird, um auf den Inhalt des BLOB zuzugreifen. Beachten Sie, dass Sie in diesem Fall FÜR DAS LÖSCHEN DER TEMPORÄREN DATEIEN, DIE VON INFORMIX ERSTELLT WERDEN VERANTWORTLLICH SIND, wenn sie ein Tupel auslesen. Jedes neue Tupel, das gelesen wird, erzeugt für jedes BYTE-Feld eine neue temporäre Datei.
Der Speicherort für die temporären Dateien kann mit der Umgebungsvariablen "blobdir" beeinflusst werden, die Standardeinstellung ist "." (das aktuelle Verzeichnis). Etwas Ähnliches wie : putenv(blobdir=tmpblob"); erleichtert das Bereinigen der temporären Dateien, die versehentlich stehen geblieben sind (ihre Namen beginnen alle mit "blb").
Hinweis: Automatisches Abschneiden von Leerzeichen bei "char" (SQLCHAR und SQLNCHAR) Daten
Dies kann mit einer Konfigurationsvariablen eingestellt werden.
ifx.charasvarchar : falls auf 1 gesetzt, werden abschließende Leerzeichen automatisch abgeschnitten. Dies erspart den Aufruf der chop() Funktion.
Hinweis: NULL-Werte
Wenn die Konfigurationsvariable ifx.nullformat (und die Laufzeitfunktion ifx_nullformat()) auf TRUE gesetzt sind, werden NULL-werte in Spalten als Zeichenkette NULL zurückgegeben, wenn die Variable auf FALSE gesetzt ist, werden leere Strings für NULLwerte zurückgegeben. So können sie zwischen NULLwerten und leeren Spalten unterscheiden.
Name | Standardwert | Änderbar | Changelog |
---|---|---|---|
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.max_links | "-1" | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.default_host | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.default_user | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.default_password | NULL | PHP_INI_SYSTEM | Removed in PHP 5.2.1. |
ifx.blobinfile | "1" | PHP_INI_ALL | Removed in PHP 5.2.1. |
ifx.textasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1. |
ifx.byteasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1. |
ifx.charasvarchar | "0" | PHP_INI_ALL | Removed in PHP 5.2.1. |
ifx.nullformat | "0" | PHP_INI_ALL | Removed in PHP 5.2.1. |
Hier eine kurze Erklärung der Konfigurationsoptionen:
Bestimmt, ob persistente Verbindungen zugelassen sind.
Gibt die maximale Anzahl persistenter Verbindungen pro Prozess an.
Gibt die maximale Anzahl der Verbindungen zum Informix Server pro Prozess an, einschließlich der persistenten Verbindungen.
Der Standardhost, zu dem verbunden wird, wenn kein Host in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im Safe Mode nicht verwendet werden.
Der Standardbenutzer, wenn kein Benutzer in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im Safe Mode nicht verwendet werden.
Das Standardpasswort, wenn kein Passwort in ifx_connect() oder ifx_pconnect() angegeben wurde. Diese Einstellung kann im Safe Mode nicht verwendet werden.
TRUE, falls blob-Spalten in eine Datei ausgegeben werden sollen, FALSE, falls blob-Spalten in den Speicher ausgegeben werden sollen. Sie können diese Einstellung mit der Funktion ifx_blobinfile_mode() zur Laufzeit ändern.
TRUE, falls text-Spalten in select Abfragen als normale Strings zurückgegeben werden sollen. FALSE, falls Sie blob-ID Parameter benutzen wolen. Sie können diese Einstellung mit der Funktion ifx_textasvarchar() zur Laufzeit ändern.
TRUE, falls BYTE-Spalten in select Abfragen als normale Strings zurückgegeben werden sollen. FALSE, falls Sie blob-ID Parameter benutzen wolen. Sie können diese Einstellung mit der Funktion ifx_textasvarchar() zur Laufzeit ändern.
TRUE, falls Sie abschlißende Leerzeichen von CHAR Spalten beim Auslesen abschneiden wollen.
TRUE, falls der Spaltenwert NULL als Literal "NULL" zurückgegeben werden soll. FALSE, falls für Nullwerte als leere Strigs "" zurückgegeben werden sollen. Sie können diese Einstellung mit der Funktion ifx_nullformat() zur Laufzeit ändern.