MySQLで全角文字と半角文字を保存する場合の違い

MySQLで全角文字と半角文字を保存する場合の違い

残念ながら、社内の IM のテスト中に MYSQL_DATA_TRUNCATED エラーが再び発生し、mysql_stmt_fetch が呼び出されたときにログ レコードが表示されました。これまでの経験からすると、指定された結果セットのバインディング領域の長さが不十分なことが原因であるはずです。何度も繰り返し確認しましたが、問題は見つかりませんでした。コード内に対応する関係があります。たとえば、char(20)の場合、コード内でchar buffer[20]配列を定義して格納します。とても正しくて完璧に見えます。各データ行を印刷し、エラーのある行を見つけて、フォントが他のものと異なっていることを発見するしかありませんでした。例えば:

123456789(半角)
123456789(全角)

これは、スペースを入力することによって制御されるのではなく、全角と半角の入力方法によって制御されます。全角文字の場合、半角文字の 2 倍の長さになります。また、MySQL は utf-8 を使用しているため、データベースでは全角文字の長さは 3 バイトになります。

select length(column) from table_name where…;

これを使って長さを印刷するとわかります。このとき、全角文字や漢字など、コード内の型の長さとデータベース フィールドの長さを一致させる問題を考慮する必要があります。データベース内の char(20) は 20 バイトではなく 20 文字を表します。データを取得するときは、結果セットの長さとして 20 を使用しないように注意してください。

<<:  WeChatミニプログラムがシームレスなスクロールを実現

>>:  回転灯効果を実現するWeChatアプレットの例

推薦する

ページスピードの最適化の概要

インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...

レスポンシブデザインについて知っておくべきこと

レスポンシブデザインとは、ウェブサイトの開発プロセス中に、ユーザーの操作やデバイス環境に応じて対応す...

Pythonは出力をcsv操作に書き込む

以下のように表示されます。 def test_write(self): フィールド=[] field...

MySQL マスタースレーブ構成の学習ノート

● 新しいプロジェクトのセキュリティを確保するためにクラウド データを購入する予定でした。 Alib...

mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法

問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...

Dockerを使用してDjango+MySQL8開発環境をデプロイする方法の詳細な説明

しばらく前にシステムを再インストールしましたが、バックアップを取っていなかったので、コンピューター上...

js の関数の長さはどれくらいですか?

目次序文なぜいくらですか?パラメータの数デフォルトパラメータ残りのパラメータ要約する序文今日は関数の...

Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...

MySQLデータのグループ化の詳細な説明

グループを作成グループ化は、SELECT ステートメントの GROUP BY 句で設定されます。例:...

Windows での MySQL 8.0.12 のインストール手順と基本的な使用方法のチュートリアル

この記事では、WindowsでのMySQL 8.0.12のインストール手順と使用方法のチュートリアル...

dockerでsshd操作を有効にする

まず、docker に openssh-server をインストールします。インストールが完了したら...

nginx+lua を使用した単一マシンでの何万もの同時接続の実装

nginx は弊社で最もよく使用されるサーバーで、コンテンツ配信やリバース プロキシによく使用されま...

ApplicationHost.config (IIS ストレージ構成領域ファイル) の概要

新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...

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

このチュートリアルでは、MySQL 5.7のインストールと設定方法を参考までに紹介します。具体的な内...

Linux環境でユーザーにsudo権限を追加する方法

sudo 設定ファイルsudo のデフォルトの設定ファイルは /etc/sudoers です。一般的...