Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

MSSQL auf PHP unter Linux?

Hallo,

ich muss auf Linux (CentOS) mit PHP auf eine MSSQL-Datenbank zugreifen.

Ich hatte das PHP-Skript unter Windows entwickelt und es lief einwandfrei, aber beim Upload auf den neuen Server musste ich leider viel am Code anpassen.

Zur Verbindung verwende ich FreeTDS und nun läuft alles soweit.

Aber die Performance lässt zu wünschen übrig, denn bei der Nutzung der persistenten Verbindung mittels mssql_pconnect() treten regelmäßig Fehler beim Auswählen der Datenbank mssql_select_db() auf. Kann man da irgendwo was verstellen?

Außerdem muss ich nach der Verwendung von gespeicherten Prozeduren immer mssql_free_statement() aufrufen, sonst gibts bei der nächten SP einen Fehler. Ist das "normal"?

Vielen Dank für Eure Antworten.

Update:

ich verwende derzeit mssql_connect(), hiermit funktioniert die Abfrage einwandfrei, jedoch zu träge.

1 Antwort

Bewertung
  • Jan C
    Lv 5
    vor 1 Jahrzehnt
    Beste Antwort

    Möglicherweise werden durch Abbrüche die Anzahl der möglichen Verbindungen überschritten.

    Würde es einfach mal mit mssql_connect probieren nur um mal das Verhalten zu vergleichen.

    Auf der anderen Seite muss man vorsichtig sein mit den Parametern:

    resource mssql_pconnect ( [string $Servername [, string $Benutzername [, string $Passwort [, bool $neue_Verbindung]]]] )

    Wird neue Verbindung angegeben, wird jedes mal eine neue persistente Verbindung aufgebaut und da überschreitet man schnell die Limits.

    Nachtrag:

    mssql_free_statement() braucht nur aufgerufen zu werden, wenn Sie befürchten, dass zur Laufzeit Ihres Scripts zu viel Speicher belegt wird. Der gesamte Anweisungsspeicher wird nach Beendigung des Scripts automatisch freigegeben. Wenn Sie mssql_free_statement() zusammen mit der Anweisungskennung als Argument aufrufen, wird der damit verbundene Anweisungsspeicher freigegeben.

    Möglicherweise hat der Webserver eine ziemlich knappe Speicherausstattung (memory_limit zu klein) und die Abfrageergebnisse sind heftig vom Volumen.

    Das würde aber auch so ziemlich alles runter ziehen.

Haben Sie noch Fragen? Jetzt beantworten lassen.