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 - Manual: mssql_field_length
2024-12-23
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_length — Get the length of a field
This function was REMOVED in PHP 7.0.0.
Alternatives to this function include:
$result
[, int $offset
= -1
] ) : int
Returns the length of field no. offset
in
result
.
result
The result resource that is being evaluated. This result comes from a call to mssql_query().
offset
The field offset, starts at 0. If omitted, the current field is used.
The length of the specified field index on success 或者在失败时返回 FALSE
.
Example #1 mssql_field_length() example
<?php
// Connect to MSSQL and select the database
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');
// Send a select query to MSSQL
$query = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');
// Print the field length
echo 'The field \'age\' has a data length of ' . mssql_field_length($query, 1);
// Free the query result
mssql_free_result($query);
?>
以上例程的输出类似于:
The field 'age' has a data length of 4
Note: Note to Windows Users
Due to a limitation in the underlying API used by PHP (MS DBLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.
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;
官方地址:https://www.php.net/manual/en/function.mssql-field-length.php