(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_length — Liefert die Länge eines Feldes
Gibt die Länge des Feldes Nr. offset aus result zurück.
Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().
Der Offset des Feldes, beginnend bei 0. Falls er nicht angegeben wurde, wird das aktuelle Feld verwendet.
Gibt die Länge des angegebenen Feldes zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 mssql_field_length()-Beispiel
<?php
// Mit MSSQL verbinden und Datenbank auswählen
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');
// Eine select-Anfrage an MSSQL senden
$anfrage = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');
// Feldlänge ausgeben
echo 'Das Feld \'age\' hat die Datenlänge ' .
mssql_field_length($anfrage, 1);
// Den Ergebnisspeicher freigeben
mssql_free_result($anfrage);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Das Feld 'age' hat die Datenlänge 4
Hinweis: Anmerkung für Windows-Benutzer
Wegen einer Einschränkung der von PHP verwendeten zugrundeliegenden API (MS DBLib C API) ist die Länge von VARCHAR-Feldern auf 255 begrenzt. Verwenden Sie stattdessen ein TEXT-Feld, wenn Sie mehr Daten speichern wollen.
there are same problem with VARBINARY, if you are forced to use existing database with such fields you can do it like this:
SELECT CAST(master.dbo.fn_varbintohexstr(VARBINARYFIELD) AS TEXT) FROM table;
You can also work around this limitation with the following:
-- for example, with MyVarCharField VARCHAR(1000)
SELECT CAST(MyVarCharField AS TEXT) FROM MyTable