@robocoder opened this Issue on January 5th 2010 Contributor

Pseudo-code:

    if mysql.server_version >= 5 and mysql.client_version < 5 then
        warning re: incompatible mysql client libraries
    endif

Some users report:

Warning: mysqli_stmt::bind_result() href='function.mysqli-stmt-bind-result'>function.mysqli-stmt-bind-result</a>: Server returned unknown type 246. Probably your client library is incompatible with the server version you use! in /.../public_html/piwik/libs/Zend/Db/Statement/Mysqli.php on line 255

According to the MySQL documentation:

C API Changes:

Incompatible change: Because the MySQL 5.0 server has a new implementation of the DECIMAL data type, a problem may occur if the server is used by older clients that still are linked against MySQL 4.1 client libraries. If a client uses the binary client/server protocol to execute prepared statements that generate result sets containing numeric values, an error will be raised: 'Using unsupported buffer type: 246'

This error occurs because the 4.1 client libraries do not support the new MYSQL_TYPE_NEWDECIMAL type value added in 5.0. There is no way to disable the new DECIMAL data type on the server side. You can avoid the problem by relinking the application with the client libraries from MySQL 5.0.

@robocoder commented on January 8th 2010 Contributor

(In [1783]) fixes #1099 - add MySQL warning if client/server versions are incompatible

@robocoder commented on August 18th 2010 Contributor

(In [2957]) refs #1099 - more precise version number for the compatibility test

This is ok in php 5.3.x's because mysqlnd returns >= 5.0.5 as the client version.

This Issue was closed on August 18th 2010
Powered by GitHub Issue Mirror