Maybe it's unique to my FreeTDS configuration, but if I don't call mssql_free_statement() after every stored procedure (i.e. mssql_init, mssql_bind, mssql_execute, mssql_fetch_array), all subsequent stored procedures on the same database connection will fail.
I only mention it because this man-page deprecates the use of mssql_free_statement(), saying it's only there for run-time memory concerns. At least in my case, it's also a crucial step in the process of running a stored procedure. If anyone else has problems running multiple stored procedures on the same connection, I hope this helps them out.
mssql_free_statement
(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)
mssql_free_statement — Gibt den Anweisungsspeicher frei
Beschreibung
bool mssql_free_statement
( resource
$stmt
)mssql_free_statement() braucht nur aufgerufen zu werden, wenn Sie befürchten, dass zur Laufzeit Ihres Skripts zu viel Speicher belegt wird. Der gesamte Anweisungsspeicher wird nach Beendigung des Skripts automatisch freigegeben. Wenn Sie mssql_free_statement() zusammen mit der Anweisungskennung als Argument aufrufen, wird der damit verbundene Anweisungsspeicher freigegeben.
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiele
Beispiel #1 mssql_free_statement()-Beispiel
<?php
// Eine neue Anweisung erzeugen
$anweisung = mssql_init('test');
// Hier Werte anbinden und die Anweisung ausführen
// Nachdem alles erledigt ist, den Speicher
// mittels mssql_free_statement freigeben:
mssql_free_statement($anweisung);
?>
Siehe auch
- mssql_bind() - Fügt einer Stored Procedure oder einer Remote Stored Procedure einen Parameter hinzu
- mssql_execute() - Führt eine Stored Procedure in einer MS SQL-Datenbank aus
- mssql_init() - Initialisiert eine Stored Procedure oder eine Remote Stored Procedure
- mssql_free_result() - Gibt den Ergebnisspeicher frei
mitch at 1800radiator dot kom ¶
8 years ago
