2017-03-22 1 views
-1

私はすべての質問を試しました&答えはこのトピックに関連しています。さらに、私は関連する質問を試み、それを解決しようとしましたが、成功はしません。だから私の質問をよく読んでください。MySQL 5.7でsql_modeを空白に設定すると、mysqli_queryのみが使用されます。

相対答え検索

  1. setting global sql_mode in mysql

  2. https://dba.stackexchange.com/questions/109053/set-sql-mode-blank-after-upgrading-to-mysql-5-6

  3. How To Set MySql SQL_MODE to ANSI from PHP

  4. http://php.net/manual/en/mysqli.options.php

私は、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

答えて

2

を使用しないで使用していますか?

それはすべての権利

$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) "" 

何らかの理由で、あなたはそれグローバル(ルートの下にクエリを実行するべきではないながら)

を設定したい場合など

私の作品
$mysqli->query("SET GLOBAL sql_mode='', SESSION sql_mode=''"); 
+0

ありがとうございます。私はしようとしましたが、グローバル変数を変更しない単純な変数 'sql_mode'を更新しました。私はグローバル変数を更新します –

+0

私の更新グローバル変数 'sql_mode'を確認します。 'select @@ sql_mode;'ヌルではない –

+0

グローバル変数を更新するには、グローバル変数を更新する必要があります。コード内のセッション変数を更新しています。ただあなたの心を –

関連する問題