我尝试了所有问题&与此主题相关的答案。此外,我尝试了相关的问题,并尝试解决它,但没有成功。所以请仔细阅读我的问题。
相对答案搜索
https://dba.stackexchange.com/questions/109053/set-sql-mode-blank-after-upgrading-to-mysql-5-6
我想更新mysql sql_mode = ''
中的全局变量。
将MySQL从5.5升级到5.7.15后,我们的一些应用面临问题,需要将sql_mode设置为空白才能解决此问题。我添加了sql_mode =''但是对mysql设置没有影响。
如何将sql_mode保留为空白?
累了代码
$db = new DB_Sql();
$db->Host = "172.**.**.**";
$db->Database = "MyDatabase";
$db->User = "root";
$db->Password = "MyPassword";
global $ourFileName,$link;
$SITE_URL="http://".$_SERVER[HTTP_HOST];
$SITE_HTTPS_URL="http://".$_SERVER[HTTP_HOST];
$ourFileName = $_SERVER['DOCUMENT_ROOT'] . "/Log/MaintenaceLogFiles.txt";
$ndb=$mdb=$db;
$link=mysqli_connect($db->Host, $db->User, $db->Password,$db->Database);
if(mysqli_connect_errno())
{
echo '<p>Error: Unable to connect to MySQL: '.mysqli_connect_error().'</p>';
}
mysqli_query($link,"set sql_mode = '' ") or die(mysqli_error());
注意: 仅使用 mysqli_query
不使用 .cnf
答案 0 :(得分:4)
为什么你认为它不起作用?
它对我有用
$row = $mysqli->query("SHOW VARIABLES LIKE 'sql_mode'")->fetch_row();
var_dump($row[1]);
$mysqli->query("SET SESSION sql_mode=''");
$row = $mysqli->query("SHOW VARIABLES LIKE 'sql_mode'")->fetch_row();
var_dump($row[1]);
输出
string(62) "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
string(0) ""
如果由于某种原因,您想将其设置为全局(而您不应该在root下运行查询)
$mysqli->query("SET GLOBAL sql_mode='', SESSION sql_mode=''");