目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル emoji - thinkphp mysql 指定された文字エンコーディングを使用して指定されたテーブルをクエリおよび操作するにはどうすればよいですか?

emoji - thinkphp mysql 指定された文字エンコーディングを使用して指定されたテーブルをクエリおよび操作するにはどうすればよいですか?

Aug 10, 2016 am 09:07 AM
emoji mysql php thinkphp

問題は次のとおりです:
多くのテーブルと多くの既存データを含むデータベースがあり、これらのデータのほとんどは utf8 に保存されています (すべてではなく、latin1 もあります)。
ユーザーが絵文字を保存できないという問題が発生しました。正しく保存するには utf8mb4 が必要であることがわかっています。

Mysql が 5.1 から 5.6.26 にアップグレードされました。次の考えと既存の試み:
1. データベース全体が uft8mb4 に更新されると、さまざまな呼び出し場所が乱雑になり、メンテナンスが不十分になるため、リスクが大きすぎます。 utf8mb4 に直接変更すると、システム全体が正常に動作しなくなる可能性があります。 。

2. ユーザーが絵文字を保存できるテーブル (以下、テーブル E) のみを uft8mb4 に更新することを検討します。 ただし、ここでのシステムは thinkphp で記述されており、エンコーディング設定は config.php に配置されます。これ、thinkphp それはすべて破壊されました。

3. 2. を考慮すると、thinkphp の本体は引き続き uft8 を変更せずに使用し、この テーブル E をクエリするときに一時的にのみ uft8mb4 を使用します。試してみてくださいM()->query('SET NAMES 'utf8mb4'');结果报错:SQLSTATE[HY000]: General error

4. 方法 2 はまだ検討中ですが、うまくいきません。このテーブル E のクエリが成功した後でも、他のテーブルに対する操作が実行され、uft8mb4 が後続のクエリでエラーを引き起こす可能性があるためです。

他のテーブルの操作に影響を与えずに、このテーブルでのみ utf8mb4 をエンコードする操作を実行する良い方法はありますか?

追記: 運用環境は 1 年間オンラインになっていて、大量のデータとオンライン ユーザーが存在するため、この問題は現在テストでのみ報告されています。データベース全体のコーディングを更新するのは危険すぎます。リーダーのアイデアは、まず落とし穴を埋めて、発見されていない落とし穴は見て見ぬふりをするというものです。
幸いなことに、システムを構築したときに本番環境にインストールしたMySQLは、最初は最新バージョンの5.6.26でした。絵文字を再コーディングする方法が最後の手段としてのみ使用されることを願っています。

返信内容:

問題は次のとおりです:
多くのテーブルと多くの既存データを含むデータベースがあり、これらのデータのほとんどは utf8 に保存されています (すべてではなく、latin1 もあります)。
ユーザーが絵文字を保存できないという問題が発生しました。正しく保存するには utf8mb4 が必要であることが知られています。

Mysql が 5.1 から 5.6.26 にアップグレードされました。次の考えと既存の試み:
1. データベース全体が uft8mb4 に更新されると、さまざまな呼び出し場所が乱雑になり、メンテナンスが不十分になるため、リスクが高すぎます。 utf8mb4 に直接変更すると、システム全体が正常に動作しなくなる可能性があります。 。

2. ユーザーが絵文字を保存できるテーブル (以下、テーブル E) のみを uft8mb4 に更新することを検討します。 ただし、ここでのシステムは thinkphp で記述されており、エンコーディング設定は config.php に配置されます。これ、thinkphp それはすべて破壊されました。

3. 2. を考慮すると、thinkphp の本体は引き続き uft8 を変更せずに使用し、この テーブル E をクエリするときに一時的にのみ uft8mb4 を使用します。試してみてくださいM()->query('SET NAMES 'utf8mb4'');结果报错:SQLSTATE[HY000]: General error

4. 方法 2 はまだ検討中ですが、うまくいきません。このテーブル E のクエリが成功した後でも、他のテーブルに対する操作が実行され、uft8mb4 が後続のクエリでエラーを引き起こす可能性があるためです。

他のテーブルの操作に影響を与えずに、このテーブルのみで utf8mb4 エンコード操作を実行する良い方法はありますか?

追記: 運用環境は 1 年間オンラインになっていて、大量のデータとオンライン ユーザーが存在するため、この問題は現在テストでのみ報告されています。データベース全体のコーディングを更新するのは危険すぎます。リーダーのアイデアは、まず落とし穴を埋めて、発見されない落とし穴は見て見ぬふりをするというものです。
幸いなことに、システムを構築したときに本番環境にインストールした MySQL は、最初は最新のバージョン 5.6.26 でした。絵文字を再コーディングする方法が最後の手段としてのみ使用されることを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

See all articles