Mailinglisten-Archive |
Oliver Roßbruch wrote: > > hi, > > hat jemand obiges mal installiert? > ich habe große probleme die mssql mit phplib ans laufen zu bringen, da eine > funktion (mssql_affected_rows()) > weggefallen ist und die phplib wohl diese benötigt. > der rest funktioniert gar wunder prächtig obwohl ich ms sch..... finde :) > kann mir jemand helfen? Hallo Oliver, das Problem war mir unbekannt. Ich habe eine Nachricht an die PHPLIB User und Developer Liste geschrieben. Ich kann der Empfehlung von Egon nur folgen, benutze ODBC. Die PHPLIB verwendet eine mehrstufige Abstraktion zum Zugriff auf Sessiondaten. Dies hat den großen Vorteil, daß anders als bei PHP4 die Anzahl der Speichermedien (theoretisch) unbegrenzt ist. So können die Sessiondaten in einer SQL Datenbank, im Shared Memory, als DBM-File und im Ldap gespeichert werden. db_mssql.inc und CT_Sql scheinen bei Deiner Konfiguration verwendet zu werden. In db_mssql.inc wird die Funktion affected_rows() definiert, wobei auf eine nicht existierende Funktion zurückgegriffen wird. function affected_rows() { return mssql_affected_rows($this->Query_ID); } ct_sql.inc ruft in der Funktion ac_store() affected_rows() auf, um zu prüfen oder das Anlegen (INSERT) neuer Sessiondaten erfolgreich war: if ( $this->db->affected_rows() == 0 && !$this->db->query($iquery)) { $ret = false; } session.inc wiederum benutzt ac_store() in freeze() Sessiondaten zu speichern. Spätestens dort wird eine Fehlermeldung produziert. Ein Workaround könnte darin bestehen die Funktion affected_rows() in db_mssql.inc zu verändern: function affected_rows() { return 1; } Damit sollte das Session Management keine Fehler mehr produzieren. Eine richtige Lösung ist es jedoch nicht. Wer in alter Gewohnheit $db->affected_rows() aufruft wird verwirrt sein, warum nur ein Eintrag verändert wurde, obwohl doch mehrere gelöscht wurden... Das MS-SQL Interface ist einfach nicht der Hit, da kann auch die schönste PHPLIB nichts machen. Ulf -- Ulf Wendel NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive