Re: [PHP-DB] Oracle PDO UTF-8 problem
Glad you resolved it. Overall, I have to recommend the OCI8 extension over the unmaintained (like much of PDO) PDO_OCI extension. Chris On 01/13/2011 11:36 PM, Karsten Lehmann wrote: I found out that the error depends on the wrong character set of the Oracle Database. In my case this was a Western Europ instance of the Database. The same data on a UTF8 instance was displayed as excpected. Am 13.01.2011 10:42, schrieb Karsten Lehmann: Doesn't work. I got the following error after i set the parameter in the PDO construct Fatal error: Undefined class constant 'MYSQL_ATTR_MAX_BUFFER_SIZE' IMHO this is only a MYSQL parameter but i worked with oracle. Am 13.01.2011 10:27, schrieb kesavan trichy rengarajan: Try increasing this: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE More info here: http://php.net/manual/en/ref.pdo-mysql.php On Thu, Jan 13, 2011 at 7:23 PM, Karsten Lehmannlehm...@maqsima.de wrote: Hello I try to read a 2000 character long string out of database. The database is an oracle 10g Express Edition with UTF-8 character set. To read the string we use the PDO abstraction layer with oci-driver. If the 2000 character contains one or more UTF-8 characters we get the problem that PDO truncate the result of the database, with the following message: Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: column 5 data was too large for buffer and was truncated to fit it in C:\wamp\www\wp\bp.php on line 115 The definition of the database column is TESTSTRING VARCHAR2(2000 CHAR) CHAR means that we can store up to 2000 characters independent from the encoding of the character (e.g. UTF8). I also init the PDO with UTF8 $dbh = new PDO('oci:dbname=' . $db_name . ';charset=UTF8', $db_user, $db_pw); If i read the same string with java and JDBC-driver it works fine, so i can exclude a database error. How i have to configre PHP/PDO to be aware of the truncation of the result string? -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Email: christopher.jo...@oracle.com Tel: +1 650 506 8630 Blog: http://blogs.oracle.com/opal/ -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] Oracle PDO UTF-8 problem
Try increasing this: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE More info here: http://php.net/manual/en/ref.pdo-mysql.php On Thu, Jan 13, 2011 at 7:23 PM, Karsten Lehmann lehm...@maqsima.de wrote: Hello I try to read a 2000 character long string out of database. The database is an oracle 10g Express Edition with UTF-8 character set. To read the string we use the PDO abstraction layer with oci-driver. If the 2000 character contains one or more UTF-8 characters we get the problem that PDO truncate the result of the database, with the following message: Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: column 5 data was too large for buffer and was truncated to fit it in C:\wamp\www\wp\bp.php on line 115 The definition of the database column is TESTSTRING VARCHAR2(2000 CHAR) CHAR means that we can store up to 2000 characters independent from the encoding of the character (e.g. UTF8). I also init the PDO with UTF8 $dbh = new PDO('oci:dbname=' . $db_name . ';charset=UTF8', $db_user, $db_pw); If i read the same string with java and JDBC-driver it works fine, so i can exclude a database error. How i have to configre PHP/PDO to be aware of the truncation of the result string? -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] Oracle PDO UTF-8 problem
Doesn't work. I got the following error after i set the parameter in the PDO construct Fatal error: Undefined class constant 'MYSQL_ATTR_MAX_BUFFER_SIZE' IMHO this is only a MYSQL parameter but i worked with oracle. Am 13.01.2011 10:27, schrieb kesavan trichy rengarajan: Try increasing this: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE More info here: http://php.net/manual/en/ref.pdo-mysql.php On Thu, Jan 13, 2011 at 7:23 PM, Karsten Lehmannlehm...@maqsima.de wrote: Hello I try to read a 2000 character long string out of database. The database is an oracle 10g Express Edition with UTF-8 character set. To read the string we use the PDO abstraction layer with oci-driver. If the 2000 character contains one or more UTF-8 characters we get the problem that PDO truncate the result of the database, with the following message: Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: column 5 data was too large for buffer and was truncated to fit it in C:\wamp\www\wp\bp.php on line 115 The definition of the database column is TESTSTRING VARCHAR2(2000 CHAR) CHAR means that we can store up to 2000 characters independent from the encoding of the character (e.g. UTF8). I also init the PDO with UTF8 $dbh = new PDO('oci:dbname=' . $db_name . ';charset=UTF8', $db_user, $db_pw); If i read the same string with java and JDBC-driver it works fine, so i can exclude a database error. How i have to configre PHP/PDO to be aware of the truncation of the result string? -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] Oracle PDO UTF-8 problem
I found out that the error depends on the wrong character set of the Oracle Database. In my case this was a Western Europ instance of the Database. The same data on a UTF8 instance was displayed as excpected. Am 13.01.2011 10:42, schrieb Karsten Lehmann: Doesn't work. I got the following error after i set the parameter in the PDO construct Fatal error: Undefined class constant 'MYSQL_ATTR_MAX_BUFFER_SIZE' IMHO this is only a MYSQL parameter but i worked with oracle. Am 13.01.2011 10:27, schrieb kesavan trichy rengarajan: Try increasing this: PDO::MYSQL_ATTR_MAX_BUFFER_SIZE More info here: http://php.net/manual/en/ref.pdo-mysql.php On Thu, Jan 13, 2011 at 7:23 PM, Karsten Lehmannlehm...@maqsima.de wrote: Hello I try to read a 2000 character long string out of database. The database is an oracle 10g Express Edition with UTF-8 character set. To read the string we use the PDO abstraction layer with oci-driver. If the 2000 character contains one or more UTF-8 characters we get the problem that PDO truncate the result of the database, with the following message: Warning: PDOStatement::fetchAll() [pdostatement.fetchall]: column 5 data was too large for buffer and was truncated to fit it in C:\wamp\www\wp\bp.php on line 115 The definition of the database column is TESTSTRING VARCHAR2(2000 CHAR) CHAR means that we can store up to 2000 characters independent from the encoding of the character (e.g. UTF8). I also init the PDO with UTF8 $dbh = new PDO('oci:dbname=' . $db_name . ';charset=UTF8', $db_user, $db_pw); If i read the same string with java and JDBC-driver it works fine, so i can exclude a database error. How i have to configre PHP/PDO to be aware of the truncation of the result string? -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php