我有一个旧的应用程序,从MySQL 5.0升级到5.1后,该应用程序开始失败.
大量研究表明,这是由于“严格模式”导致无法插入某些类型的“无效”值,这些值以前只是自动转换为合理值.
我试过SET @@ SESSION.sql_mode =”和SET @@ GLOBAL.sql_mode =”,但仍然出现错误.
还尝试在my.ini中注释掉sql_mode.
是否有更强大的“核”选择来解决此问题?
解决方法:
在我的应用程序中,我通常通过发出以下命令来确保MySQL连接正在使用传统模式
SET SESSION sql_mode = 'ANSI_QUOTES,TRADITIONAL'
在每个新连接上.我想如果你只是发出
SET SESSION sql_mode = ''
在每个新连接上,您都将解决问题.
您应该可以通过发出以下命令来更改新连接的默认SQL模式
SET GLOBAL sql_mode = ''
但是您必须使用具有足够特权的帐户才能执行此操作,否则该帐户将无效.
我认为,如果您要确保特定的SQL模式正在为您的应用程序运行,则最可靠的方法是为每个新连接设置它.