PHP Unconference Europe 2015

mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_lengthGet the length of a field

说明

int mssql_field_length ( resource $result [, int $offset = -1 ] )

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($query1);

// 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.

参见

add a note add a note

User Contributed Notes 2 notes

up
0
zz(lost dot childz at gmail dot com)
7 years ago
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;
up
0
Anonymous
9 years ago
You can also work around this limitation with the following:

   -- for example, with MyVarCharField VARCHAR(1000)
   SELECT CAST(MyVarCharField AS TEXT) FROM MyTable
To Top