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

推薦する

VUE+Express+MongoDBのフロントエンドとバックエンドの分離によるノートウォールの実現

付箋紙の壁シリーズを実現しようと思っています。シンプルなものはシンプル、複雑なものは多機能です。開発...

vue + Electron でデスクトップ アプリケーションを作成するためのサンプル コード

1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...

CSS3 アニメーション ボールローリング JS コントロールアニメーション一時停止

CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...

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

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

nginxで静的リソースを公開する方法

ステップ準備した静的リソースファイルを指定されたフォルダに配置しますnginx 設定ファイルを変更す...

Web デザインの経験: 独善的な Web デザイナー

1. ゴミかクラシックか? Web テクノロジーは急速に更新されており、Web サイトのインターフェ...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

Vue+echarts で積み上げ棒グラフを実現

この記事では、積み上げ棒グラフを実装するためのVue+echartsの具体的なコードを参考までに紹介...

純粋な CSS3 で実装された三目並べゲーム

操作効果: html <div class="三目並べ"> <...

MySQL例外に対する一般的な解決策をいくつか分析する

目次序文1. コードによって設定されたデータベース名またはパスワードがローカルデータベースと一致して...

Linux でのデータベースのスケジュールバックアップの実装スクリプト

目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...

canvas.toDataURL image/png エラー処理方法の推奨

問題の背景:再生中のビデオのスクリーンショットを撮る必要があります。ビデオはビデオタグを使用して再生...