1

我正在使用“MySQL Connector for C v6.1.11”连接到 MySQL 5.6.35 服务器。

当我mysql_real_query()用来运行类似的查询SELECT MAKETIME(-1000,57,33)时,mysql_warning_count()正确返回 1 个警告(SHOW WARNINGS会说“截断不正确的时间值:-1000:57:33”)。

我最近用 MariaDB 10.3.13 替换了 MySQL 5.6.35 服务器。相同的查询mysql_warning_count() 现在返回 0 个警告。但是,SHOW WARNINGS仍会列出警告(如预期的那样)。

我尝试用最新的 MariaDB Connector/C (v3.1.6) 替换旧的 MySQL 连接器库,但问题仍然存在。

什么会导致不报告查询警告?我是否需要在某处设置标志,或应用一些兼容性设置?

使用的 SQL 模式是默认的,即: 对于 MySQL 5.6: NO_ENGINE_SUBSTITUTION 对于 MariaDB 10.3:STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO , NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

传递给的唯一客户端标志mysql_real_connect()CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS(对于 MySQL 和 MariaDB)

4

0 回答 0