XLIII. Informix Funktionen

Einführung

Der Informix-Treiber für Informix ( IDS ) 7.x , SE 7.x , Universal Server (IUS ) 9.x und IDS 2000 ist in "ifx.ec " und "php3_ifx.h " im Verzeichnis der Informix Erweiterung implementiert . Die Unterstützung für IDS 7.x ist mit der vollen Unterstützung für TEXT - und BYTE-Felder ziemlich vollständig . Die Unterstützung von IUS 9.x ist nur teilweise fertig : die neuen Datentypen gibt es zwar , aber die Unterstützung von SLOB - und CLOB-Datentypen ist noch in Arbeit .

Anforderungen

Bemerkungen zur Konfiguration : Sie brauchen ESQL / C , um den PHP Informix-Treiber zu kompilieren . ESQL / C Versionen ab 7.2x sollten genügen . ESQL / C ist jetzt Teil des Informix Client SDK .

Versichern Sie sich , dass die Variable " INFORMIXDIR " gesetzt ist und dass Sie $INFORMIXDIR / bin in Ihren Pfad eingebunden haben , bevor Sie das "configure " Skript aufrufen .

Installation

Anmerkung : Das Konfigurationsskript findet die Bibliotheken und Include-Verzeichnisse selbständig , wenn Sie configure mit der Option --with_informix=yes aufrufen . Sie können diese automatische Erkennung überschreiben , wenn Sie in der Systemumgebung " IFX_LIBDIR" , "IFX_LIBS " und "IFX_INCDIR " setzen . Das Konfigurationsskript wird ebenso versuchen , die Version Ihres Informix Servers zu erkennen . Es setzt die Variable " HAVE_IFX_IUS " für eine bedingte Kompilation , falls Ihre Version = 9.00 ist .

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt .

Anmerkung : 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 ) .

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 angeben , dass 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 . Benutzen Sie normale Datei I / O-Routinen , um die Inhalte von BLOBs zu erhalten .

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-Felder die blob-id

ifx_byteasvarchar( 0 ) : benutzt bei SELECT Abfragen von BYTE-Felder 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" ) .

Automatisches Abschneiden von Leerzeichen bei " char " (SQLCHAR und SQLNCHAR ) Daten : Dies kann mit einer Konfigurationsvariablen eingestellt werden

ifx.charasvarchar : falls auf 1 gesetzt , werden abschliessende Leerzeichen automatisch abgeschnitten . Dies erspart den Aufruf der chop( ) Funktion .

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 NULL werte zurückgegeben . So können sie zwischen NULL werten und leeren Spalten unterscheiden .

Tabelle 1 . Informix Konfigurationsoptionen

Standardwert Änderbar
Weitere Details und Definitionen der PHP_INI_* Konstanten finden sie bei der Funktion ini_set() .

Hier folgt eine kurze Beschreibung der Konfigurationseinstellungen .

ifx.allow_persistent boolean

Bestimmt , ob persistente Verbindungen zugelassen sind .

ifx.max_persistent integer

Gibt die maximale Anzahl persistenter Verbindungen pro Prozess an .

ifx.max_links integer

Gibt die maximale Anzahl der Verbindungen zum Informix Server pro Prozess an , einschliesslich der persistenten Verbindungen .

ifx.default_host string

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 .

ifx.default_user string

Der Standardbenutzer , wenn kein Benutzer in ifx_connect( ) oder ifx_pconnect( ) angegeben wurde . Diese Einstellung kann im safe mode nicht verwendet werden .

ifx.default_password string

Das Standardpasswort , wenn kein Passwort in ifx_connect( ) oder ifx_pconnect( ) angegeben wurde . Diese Einstellung kann im safe mode nicht verwendet werden .

ifx.blobinfile boolean

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 .

ifx.textasvarchar boolean

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 .

ifx.byteasvarchar boolean

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 .

ifx.charasvarchar boolean

TRUE , falls Sie abschliesende Leerzeichen von CHAR Spalten beim Auslesen abschneiden wollen .

ifx.nullformat boolean

TRUE , falls der Spaltenwert NULL als Literal " NULL " zurückgegeben werden soll . FALSE , falls für Nullwerte leere Strigs " " zurückgegeben werden sollen . Sie können diese Einstellung mit der Funktion ifx_nullformat( ) zur Laufzeit ändern .



Resource Typen

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten .

Inhaltsverzeichnis
ifx_affected_rows -- Gibt die Anzahl der Datensätze zurück, die von einer Abfrage betroffen sind
ifx_blobinfile_mode -- Setzt den Standardmodus für BLOBs bei allen SELECT Abfragen
ifx_byteasvarchar -- Setzt den Standard Byte-Modus
ifx_close -- Schliesst eine Informix Verbindung
ifx_connect -- Öffnet eine Verbindung zu einem Informix Server
ifx_copy_blob -- Dupliziert ein gegebenes BLOB (Binary Large Object)
ifx_create_blob -- Erzeugt ein BLOB (Binary Large Object)
ifx_create_char -- Erzeugt ein Zeichen-Objekt
ifx_do -- Führt eine vorbereitete Abfrage aus
ifx_error -- Gibt den Fehlercode des letzten Informix Aufrufs zurück
ifx_errormsg -- Gibt die Fehlermeldung des zuletzt aufgetretenen Informix Fehlers zurück
ifx_fetch_row -- Holt eine Zeile als aufgezähltes Array
ifx_fieldproperties -- Gibt eine Liste mit den Feldeigenschaften zurück
ifx_fieldtypes -- Gibt eine Liste der Informix SQL Felder zurück
ifx_free_blob -- Löscht ein Blob Objekt
ifx_free_char -- Löscht ein CHAR Objekt
ifx_free_result -- Gibt den belegten Speicher einer Ergebnismenge wieder frei
ifx_get_blob -- Gibt den Inhalt eines Large Objects zurück
ifx_get_char -- Gibt den Inhalt eines Zeichen-Objekts zurück
ifx_getsqlca -- Gibt den Inhalt von sqlca.sqlerrd[0..5] nach einer Abfrage zurück
ifx_htmltbl_result -- Gibt alle Zeilen einer Abfrage als HTML-Tabelle formatiert zurück
ifx_nullformat -- Setzt den aktuellen Rückgabewert für Nullwerte beim Lesen von Zeilen
ifx_num_fields -- Gibt die Anzahl der Spalten einer Abfrage zurück
ifx_num_rows -- Count the rows already fetched from a query
ifx_pconnect -- Öffnet eine persistente Informix Verbindung
ifx_prepare -- Stellt einen SQL Befehl zur späteren Ausführung bereit
ifx_query -- Schickt eine Informix Abfrage an den Server
ifx_textasvarchar -- Set the default text mode
ifx_update_blob -- Updates the content of the blob object
ifx_update_char -- Updates the content of the char object
ifxus_close_slob -- Deletes the slob object
ifxus_create_slob -- Creates an slob object and opens it
ifxus_free_slob -- Deletes the slob object
ifxus_open_slob -- Opens an slob object
ifxus_read_slob -- Reads nbytes of the slob object
ifxus_seek_slob -- Sets the current file or seek position
ifxus_tell_slob -- Returns the current file or seek position
ifxus_write_slob -- Writes a string into the slob object