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;
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_length — Liefert die Länge eines Feldes
Diese Funktion wurde in PHP 7.0.0 REMOVED (entfernt).
Alternativ können folgende Features verwendet werden:
$result
[, int $offset
= -1
] ) : int
Gibt die Länge des Feldes Nr. offset
aus
result
zurück.
result
Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().
offset
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 einTEXT
-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;