MSSQL und PHP 5.0.3 und 5.0.4 ?

MSSQL und PHP 5.0.3 und 5.0.4 ?

am 29.10.2005 13:23:00 von Wolfgang Maier

Hi,

betrifft MS-SQL 2000:

Wenn ich in PHP 5.0.4 ( auf meinem Heimsystem ) ein query absetze das keinen
Result-Cursor ergibt ( z.B. Bei Select INTO #temp, oder UPDATE ) bekomme ich
ein TRUE zurück und kann weiterarbeiten.
Auf einem anderen Server, auf dem PHP 5.0.3 installiert ist bekomme ich ein
FALSE zurück, was mich in eine Fehlerbehandlung zwingt.

Ist das ein unterschiedliches Verhalten der PHP-Versionen ?
Wenn Ja, kann ich die PHP_MSSQL.DLL aus Version 5.0.4 in Version 5.0.3
verwenden ?
Oder übersehe ich etwas generelles ?



--

mfg. wm.
-------------------------------------
Wolfgang Maier
A-8020 Graz Austria Europe

Bitte schicken Sie nur Antworten an die Newsgroup.
Die angegebene email-Adresse ist ein Spam-Sammler
und die Mailbox wird ohne Kontrolle gelöscht.
Für direkte Mails ändern Sie das Prefix in der Mailadresse bitte auf wm.

Re: MSSQL und PHP 5.0.3 und 5.0.4 ?

am 30.10.2005 12:24:00 von Uli Honal

Wolfgang Maier wrote:

> betrifft MS-SQL 2000:
>
> Wenn ich in PHP 5.0.4 ( auf meinem Heimsystem ) ein query absetze das keinen
> Result-Cursor ergibt ( z.B. Bei Select INTO #temp, oder UPDATE ) bekomme ich
> ein TRUE zurück und kann weiterarbeiten.
> Auf einem anderen Server, auf dem PHP 5.0.3 installiert ist bekomme ich ein
> FALSE zurück, was mich in eine Fehlerbehandlung zwingt.
>
> Ist das ein unterschiedliches Verhalten der PHP-Versionen ?

Ich hatte dieses Problem auch einmal... IIRC hatte es mit
unterschiedlichen FreeTDS-Versionen zu tun, nicht mit PHP.

Ich würde mich "gefühlsmässig" auf diesen Rückgabewert nichöt verlassen,
besonders nicht, um zu prüfen ob ein INSERT oder UPDATE erfolgreich war.
Vielleicht lieber ein 'SELECT @@ERROR AS err' oder sowas anhängen, und
dann das Resultset prüfen. Ist natürlich nicht so elegant.

HTH,

-Uli

Re: MSSQL und PHP 5.0.3 und 5.0.4 ?

am 30.10.2005 13:18:08 von Wolfgang Maier

Hi Uli,

> Ich hatte dieses Problem auch einmal... IIRC hatte es mit
> unterschiedlichen FreeTDS-Versionen zu tun, nicht mit PHP.
>
> Ich würde mich "gefühlsmässig" auf diesen Rückgabewert nichöt verlassen,
> besonders nicht, um zu prüfen ob ein INSERT oder UPDATE erfolgreich war.
> Vielleicht lieber ein 'SELECT @@ERROR AS err' oder sowas anhängen, und
> dann das Resultset prüfen. Ist natürlich nicht so elegant.

Ich verwende das PEAR:DB dafür, einfach weil es da ist.
Und es scheint tatsächlich in der 'PHP_mssql.dll' der Fehler drin sein, dass
alle Aktionen, die keinen Resultcursor ergeben, ein FALSE zurückgeben, was
von PEAR dann als Fehler interpretiert wird.

Ich habe jetzt als Test die dll der Version 5.0.4 hinkopiert und damit
scheint es zu funktionieren.

--

mfg. wm.
-------------------------------------
Wolfgang Maier
A-8020 Graz Austria Europe

Bitte schicken Sie nur Antworten an die Newsgroup.
Die angegebene email-Adresse ist ein Spam-Sammler
und die Mailbox wird ohne Kontrolle gelöscht.
Für direkte Mails ändern Sie das Prefix in der Mailadresse bitte auf wm.

"Uli Honal" schrieb im Newsbeitrag
news:dk2agh$cik$1@svr7.m-online.net...
> Wolfgang Maier wrote:
>
>> betrifft MS-SQL 2000:
>>
>> Wenn ich in PHP 5.0.4 ( auf meinem Heimsystem ) ein query absetze das
>> keinen
>> Result-Cursor ergibt ( z.B. Bei Select INTO #temp, oder UPDATE ) bekomme
>> ich
>> ein TRUE zurück und kann weiterarbeiten.
>> Auf einem anderen Server, auf dem PHP 5.0.3 installiert ist bekomme ich
>> ein
>> FALSE zurück, was mich in eine Fehlerbehandlung zwingt.
>>
>> Ist das ein unterschiedliches Verhalten der PHP-Versionen ?
>
> Ich hatte dieses Problem auch einmal... IIRC hatte es mit
> unterschiedlichen FreeTDS-Versionen zu tun, nicht mit PHP.
>
> Ich würde mich "gefühlsmässig" auf diesen Rückgabewert nichöt verlassen,
> besonders nicht, um zu prüfen ob ein INSERT oder UPDATE erfolgreich war.
> Vielleicht lieber ein 'SELECT @@ERROR AS err' oder sowas anhängen, und
> dann das Resultset prüfen. Ist natürlich nicht so elegant.
>
> HTH,
>
> -Uli