|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-10-22 18:02 UTC] aavolkoff at gmail dot com
Description:
------------
Value of "length" column for fetch_fields() is incorrect.
eg: MySQL version: 5.0.37
Reproduce code:
---------------
I have table "Users":
name = "id"; type = "INT"; length = 11.
name = "name"; type = "VARCHAR"; length = 200.
name = "description"; type = "VARCHAR"; length = 200.
Code:
//$mysqli defined earlier
$query = "SELECT * FROM `Users` LIMIT 0";
$query_result = $mysqli->real_query($query);
if ($query_result)
{
$mysqli_result = $mysqli->use_result();
$mysqli_fields = $mysqli_result->fetch_fields();
$mysqli_result->free_result();
print_r($mysqli_fields);
}
Expected result:
----------------
Array (
[0] => stdClass Object (
[name] => id
[orgname] => id
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 11
[charsetnr] => 63
[flags] => 49667
[type] => 3
[decimals] => 0 )
[1] => stdClass Object (
[name] => name
[orgname] => name
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 200
[charsetnr] => 33
[flags] => 0
[type] => 253
[decimals] => 0 )
[2] => stdClass Object (
[name] => description
[orgname] => description
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 200
[charsetnr] => 33
[flags] => 0
[type] => 253
[decimals] => 0 )
)
Actual result:
--------------
Array (
[0] => stdClass Object (
[name] => id
[orgname] => id
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 11
[charsetnr] => 63
[flags] => 49667
[type] => 3
[decimals] => 0 )
[1] => stdClass Object (
[name] => name
[orgname] => name
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 600
[charsetnr] => 33
[flags] => 0
[type] => 253
[decimals] => 0 )
[2] => stdClass Object (
[name] => description
[orgname] => description
[table] => Users
[orgtable] => Users
[def] =>
[max_length] => 0
[length] => 600
[charsetnr] => 33
[flags] => 0
[type] => 253
[decimals] => 0 )
)
Parameter "length" of array elements is incorrect (600, but not 200).
When I change length in PhpMyAdmin to 150 code "says" that length is
450.
When I change length in PhpMyAdmin to 1 code "says" that length is 3.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 13:00:01 2025 UTC |
MySQL charset: UTF-8 Unicode (utf8) <? $mysqli = new mysqli("localhost", "root", ""); if (mysqli_connect_errno()) return false; $db_name = "local"; $query = "CREATE DATABASE `$db_name`"; $mysqli->real_query($query); $mysqli->select_db($db_name); $table_name = "Users"; $query = "CREATE TABLE `".$table_name."`(id int not null auto_increment, name varchar(200), description varchar(200), primary key (id)) TYPE=MyISAM"; $mysqli->real_query($query); $query = "SELECT * FROM `$table_name` LIMIT 0"; $query_result = $mysqli->real_query($query); if ($query_result) { $mysqli_result = $mysqli->use_result(); $mysqli_fields = $mysqli_result->fetch_fields(); $mysqli_result->free_result(); print_r($mysqli_fields); } ?>