PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : informix zugriff mit php5



wackeldackel
04.04.08, 09:50
Hallo,

ich würde gerne mit php5 auf eine Informix DB zugreifen.
System läuft auf Debian 3.0 (hatte vorher SuSE mit php4 und hier lief es)

- Datenbank ist installiert und läuft. Mittels dbaccess auch erreichbar.
- CSDK Client ist installiert und die Umgebungsvariablen sind dem System
bekannt (INFORMIXSERVER, INFORMIX, SQLHOSTS, ONCONFIG)
- php in Version 5.1.0 ist mit with-informix=... kompiliert und phpinfo() zeigt
das auch so an. (die neuen PHP Versionen haben kein informix mehr drin)
- php -m zeigt informix als Modul an.

Aber
Wenn ich jetzt mein Skript aufrufe kommt die Fehlermeldung:

Warning: ifx_connect() [function.ifx-connect]: E [SQLSTATE=IX 001 SQLCODE=-1829] in includes/include.php.inc on line 6
E [SQLSTATE=IX 001 SQLCODE=-1829]

die Verbindungsdaten haben ja vorher funktioniert und deshalb muss weiss ich nicht weiter.
$con=ifx_connect("db@serveraussqlhosts", "user", "passwort") or die(ifx_error("es konnte keine DB Verbindung hergestellt werden"));


Hat jemand Ahnung, was das sein könnte ???

w-s-p
04.04.08, 10:41
Vielleicht hilft dir das ja weiter:
sqlcode=-1829 (http://qaix.com/php-web-programming/128-873-warning-ifx-connect-e-sqlstate-ix-001-sqlcode-1829-read.shtml)
Also dass noch nicht alle Variablen bekannt/gesetzt sind?

wackeldackel
04.04.08, 10:56
Hallo w-s-p,

Die Variablen waren (bis auf die ODBCINI) alle vorhanden und auch in der phpinfo sichtbar. Ich habe ODBCINI nachgezogen, aber das hilft nichts.

wackeldackel
04.04.08, 11:30
Hallo,

ich habe gerade was gefunden. Man sollte im Apache Startskript unter ENV die Variablen ebenfalls setzen. Dann tauchen diese in der phpinfo unter den Apache Variablen mit auf.

Jetzt bekomme ich halt ne andere Fehlermeldung
SQLSTATE=IX 000 SQLCODE=-25553

ABER

schon mal was anderes :D

wackeldackel
04.04.08, 11:37
OK das wars

Für alle die es interessiert.

Fehler 1 waren die fehlenden Angaben im Apache Startskript:

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin:/opt/IBM/informix:/opt/IBM/informix/bin INFORMIXDIR=/opt/IBM/informix INFORMIXSERVER=sagichnicht
DBSERVERNAME=sagichnicht SQLHOSTS=/opt/IBM/informix/etc/sqlhosts"


danach kam die neue Meldung

und das war schlicht und ergreifend das Dateirecht.
die sqlhosts musste lesbar gemacht werden.

Schönen Tag noch und Danke