#50021 [Opn]: Predefined Statements doesn't allow Strings with more than 256 letters.

From: Date: Tue, 03 Nov 2009 21:32:25 +0000
Subject: #50021 [Opn]: Predefined Statements doesn't allow Strings with more than 256 letters.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-144220@lists.php.net to get a copy of this message
ID: 50021 Updated by: uw@php.net Reported By: novitools dot novi at web dot de Status: Open Bug Type: MySQLi related Operating System: Windows Vista PHP Version: 5.3.0 New Comment: Thanks for the feedback! I feared that meta data would indicate the correct length. To be honest, I have no idea so far what may be causing it. Previous Comments: ------------------------------------------------------------------------ [2009-11-03 14:33:21] novitools dot novi at web dot de Here is the result: Field 1: `You can only read the first 256 words of this text. That is why I must write such a long text, because I must reach the limit of 256 words. The same error occours, when you try to select a text column from the database. But I didn't had this error before ` Catalog: def Database: `` Table: `` Org_table: `` Type: VAR_STRING Collation: latin1_swedish_ci (8) Length: 284 Max_length: 284 Decimals: 31 Flags: NOT_NULL +------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------------------------------------------+ | You can only read the first 256 words of this text. That is why I must write such a long text, because I must reach the limit of 256 words. The same error occours, when you try to select a text column from the database. But I didn't had this error before | +------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------------------------------------------+ | You can only read the first 256 words of this text. That is why I must write such a long text, because I must reach the limit of 256 words. The same error occours, when you try to select a text column from the database. But I didn't had this error before in a previous version of php. | +------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------------------------------------------+ 1 row in set (0.00 sec) ------------------------------------------------------------------------ [2009-11-03 09:54:50] uw@php.net Please run you query in the MySQL prompt and show the meta data that is returned from MySQL. Start the MySQL prompt with "mysql --column-type-info" followed by your usual "-u", "-p", "-h" etc. options. For example: nixnutz@ulflinux:~> /usr/local/mysql/bin/mysql --column-type-info -uroot -proot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 5.1.39-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> select 1; Field 1: 1 Catalog: def Database: `` Table: `` Org_table: `` Type: LONGLONG Collation: binary (63) Length: 1 Max_length: 1 Decimals: 0 Flags: NOT_NULL BINARY NUM +---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec) But, of course, run your failing query and run mysql prompt on your system. Thanks, Ulf ------------------------------------------------------------------------ [2009-10-30 15:12:35] novitools dot novi at web dot de So the problem only occurs on specific versions: No Problem with this Versions: client_version 50005 server_version 50132 Big Problem with this Versions: client_version 50137 server_version 50137 ------------------------------------------------------------------------ [2009-10-29 17:58:24] friedrich dot mark at freenet dot de Same Problem here: $db = new mysqli('localhost', 'root', '', 'test'); $stmt = $db->stmt_init(); $sql = "SELECT text FROM longtext WHERE id = 1"; $stmt->prepare($sql); $stmt->execute(); $stmt->bind_result($text); $stmt->fetch(); $stmt->close(); var_dump(phpversion()); var_dump($db->client_version); var_dump($db->server_version); var_dump($db->protocol_version); var_dump($text); Output: string(5) "5.3.0" int(50137) int(50137) int(10) string(256) "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata " OS: Win 7 SQL: SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE DATABASE test DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE test; CREATE TABLE IF NOT EXISTS longtext ( id int(11) NOT NULL, text text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO longtext (id, text) VALUES (1, 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.'); ------------------------------------------------------------------------ [2009-10-29 17:07:41] novitools dot novi at web dot de When I run the test from hellbringer at gmail dot com I get a different result. Also the MySQL-Versions are different: string(5) "5.3.0" int(50137) int(50137) int(10) string(256) "You can only read the first 256 words of this text. That is why I must write such a long text, because I must reach the limit of 256 words. The same error occours, when you try to select a text column from the database. But I didn't had this error befo" Are there any setting that can cause this problem? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/50021 -- Edit this bug report at http://bugs.php.net/?id=50021&edit=1

« previous php.bugs (#144220) next »