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アプレットの例

推薦する

Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード

1. ローカルマシンを監視するためにZabbixエージェントをインストールするエージェントソフトウェ...

ubuntu20.04 LTSにdockerをインストールする方法

ゼロ: 古いバージョンをアンインストールするDocker の古いバージョンは、docker、dock...

AWSサーバーリソースを無料で使用する方法を教えます

AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...

マークアップ言語 - リスト再び

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

HTML ドラッグ アンド ドロップ機能の実装コード

Vueベースこの機能の核となるアイデアは、JavaScript コードを通じてページ上のノードの左余...

ハイパーリンクを使用してリンクファイルを開く HTML 方式の紹介

a および href 属性 HTML では、英語ではアンカーと呼ばれるハイパーリンクを表すために &...

MySQL パーティションテーブルの正しい使用方法

MySQL パーティションテーブルの概要数億、あるいは数十億ものレコードを格納するテーブルに遭遇する...

VMware インストール後に仮想ネットワーク カードが表示されない問題について

1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...

VMware Workstation のダウンロードとインストールの詳細なチュートリアル

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

MySQL NULLがピットを引き起こした

比較演算子でNULLを使用する mysql> 1>NULLを選択します。 +------...

MySQL 起動時に「サーバーは PID ファイルを更新せずに終了しました」というエラーが報告される理由の詳細な分析

多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...

データベースの削除から逃走までの MySQL の徹底分析_上級編 (I) - データ整合性

1. データ整合性の概要1. データ整合性の概要データの冗長性とは、データベース内に重複したデータが...

Mysql のフィールドのデータの一部をバッチ置換する (推奨)

MYSQL のフィールドのデータの一部をバッチで置き換えます。具体的な導入は次のとおりです。 1....

Linux で MySQL 5.6 X64 バージョンをインストールする詳細な手順

環境: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-glibc2.5...