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プロジェクトでの双方向データバインディングの簡単な実装方法

推薦する

CentOS6.5にpython3.7をインストールする詳細な手順

1. Python 3をダウンロードする https://www.python.org/ftp/py...

MySQL 5.7.15 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

Docker ビルド PHP 環境チュートリアル詳細説明

Dockerのインストール公式インストールスクリプトを使用して最新バージョンのDockerをインスト...

MySQL データ分析ストレージエンジンの例の説明

目次1. 事例紹介2. システムのデフォルトのストレージエンジンとデフォルトの文字セットを表示する3...

MySQLのSQLモードの特徴のまとめ

序文SQL モードは、MySQL がサポートする SQL 構文と、実行されるデータ検証チェックに影響...

CentOS に MySQL 8.0 をインストールして設定するための詳細な手順

序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...

HTMLバージョン宣言DOCTYPEタグ

通常のウェブサイトのソースコードを開くと、ソースコードは<!DOCTYPE htmlで始まる必...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...

複数の HTML ページで HTML コードをまとめて呼び出す方法

方法 1: スクリプト方式を使用する:共通ヘッダー ファイル head.js または共通フッター フ...

...

MySQL の日付型の単一行関数コードの詳細な説明

MySQL の日付型単一行関数: CURDATE()またはCURRENT_DATE()は現在の日付を...

Vueで背景色と透明度を設定する方法

背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...

VirtualBox+Ubuntu16でKubernetesクラスタを構築する実装

目次Kubernetesについて基本的な環境の準備VirtualBoxをインストールするUbuntu...