MySQL Strict Modeの知識ポイントの詳細な説明

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明

MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES) の制限に従って、次のようになります。

1) NULLでないフィールドにNULL値を挿入することはサポートされていません

2) 自動増分フィールドに「」値を挿入することはできませんが、null値を挿入することはできます。

3). テキストフィールドのデフォルト値をサポートしていません

次のコードを見てください: (最初のフィールドは自動インクリメントフィールドです)

SQLコード

$query="デモ値に挿入('','$firstname','$lastname','$sex')";

上記のコードは非厳密モードでのみ有効です。

コード

$query="デモ値に挿入(NULL,'$firstname','$lastname','$sex')";

上記のコードは厳密モードでのみ有効です。空の値 '' を NULL に置き換えます。

II. データベースを厳密モードに対応させる

1. 厳密モードをサポートするために、データベース構造に次の改善を加えます。

1) すべての非ヌルフィールドに非ヌルのデフォルト値を設定します。文字列のデフォルト値は「''」、数値のデフォルト値は0、日付のデフォルト値は「0000-00-00 00:00:00」です。

2) テキストフィールドのデフォルト値を削除する

3) 標準化の改善: タイトルフィールドをvarchar(255)に変更し、デフォルト値のnullフィールドを非nullフィールドに変更します。

2. インストールされたPHPプログラムのデータベース構造がStrictモードをオフにする場合

1) 1 つは、MySQL 5.0 (またはそれ以降) をインストールするときに厳密モードを削除することです。

my.cnf を編集して Strict Mode をオフにします。

sql モード = "NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION"

2) 別の方法は、クエリ ステートメントを変更することです。例えば、

($this->dbcharset) の場合 {
@mysql_query("名前を設定 ".$this->dbcharset);
}

後で実行

mysql_query("@@sql_mode = '' を設定します");

MySQL 5 を使用していることを確認してください。

mysqliメソッドも同様で、実行は

mysqli_query($this->connection_id, "@@sql_mode = '' に設定");

MySQL Strict Mode の知識ポイントの詳細な説明に関するこの記事はこれで終わりです。MySQL Strict Mode に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL の sql_mode モード例の詳細な説明
  • Django2 は MySQL に接続し、モデルテストの例を分析します。
  • MySQL sql_modeの適切な設定に関する詳細な説明
  • MySQL sql_mode の分析と設定の説明
  • MySQL での SQL モードの表示と設定の詳細な説明

<<:  jsはreduceメソッドを使用してコードをよりエレガントにします

>>:  jsプロジェクトでの双方向データバインディングの簡単な実装方法

推薦する

MySQLでデータベースデータ保存ディレクトリを変更する方法

序文MySQL データベースのデフォルトのデータベース ファイルは /var/lib/mysql に...

CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

ハートの属性不透明度: .999 は要素のスタッキングコンテキストを作成し、ボタン6と8のアニメーシ...

Vue-router プログラムナビゲーションの 2 つの実装コード

ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...

Chrome、Firefox、IEで入力カーソルの位置がずれる問題の解決方法

ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...

Vue でバイナリ ファイル ストリームを受信して​​ PDF プレビューを実現する方法

バックグラウンド コントローラー @RequestMapping("/getPDFStre...

単一マシン上での Tomcat の複数インスタンスの実装

1. はじめにまず、1 台のマシンで複数のインスタンスを使用する理由という質問に答える必要があります...

CentOS 8 仮想マシンから Windows 10 ホスト フォルダーにアクセスする方法の簡単な分析

VMware Toolsをインストールすると、仮想マシンホスト間で①テキストをコピーして貼り付けるこ...

Mysql の遅いクエリ操作の概要

MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...

IDEA Maven プロジェクトで Tomcat をデバッグ モードで実行する詳細なチュートリアル

1. pom.xmlに次の依存関係を追加します。 <依存関係> <groupId&...

Vue カプセル化コンポーネント ツール $attrs、$listeners の使用

目次序文$属性例: $listeners (公式説明)使用シナリオ要約する序文複数レベルのコンポーネ...

MySQL Innodb ストレージ構造と Null 値の保存の詳細な説明

背景:テーブルスペース: すべての INNODB データはテーブルスペース (共有テーブルスペース)...

Tomcat のプレースホルダーによるポート設定方法 (パラメータ指定方式)

仕事で必要になったため、インターネットで多くの情報を見つけましたが、それらはすべてコピーアンドペース...

MacOS での MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル

この記事では、MacOSでのMySQL 8.0.18のインストールと成功したコマンドライン操作を記録...

jQuery キャンバスで画像検証コード例を描画する

この記事では、jQuery Canvasの描画画像検証コードの具体的なコードを例として紹介します。具...

HTML の基礎必読 - CSS スタイルシートの包括的な理解

CSS (カスケーディング スタイル シート) は、HTML Web ページを美しくするために使用さ...