外部キー制約を使用してテーブルにレコードを挿入する方法
外部キー制約のあるテーブルにレコードを挿入するにはどうすればよいですか?
mysql で 2 つのテーブルを作成しました
mysql>describe room;
+----------+----------+------ +-- ---+--------+------+
| 追加キー |
+----- --- +----------+------+-----+----------+----------+
| | 文字 (20) | |
| 文字 (20) | --+------+-----+-----------+----------+
セット内の 2 行 (0.07 秒)
単語リストは
mysql>describe guahao;
+------+----------+------+-----+ - --------+------+
| デフォルト |
+------+---- -----+------+-----+-----------+------+
| 文字 (20) | | NULL | 文字 (10) | 文字 (20) | | MUL | |
+-----+----------+-----+-----+------ -- -+------+
セット内の 4 行 (0.00 秒)
外部キーはルームで、削除カスケード、更新カスケード
コマンドラインで尋ねました。ワードテーブルにデータを挿入するのは問題ありません。結果は
insert into guahao
-> ('Xiao Zhang', ' Male', ' Dermatology');クエリ OK 、1 行が影響を受けました (0.04 秒)
mysql> select * from guahao;
+--------+-----+-----+-- -- -------+
| 性別 | 部屋 |
+-----+-----+--- -- ------+
| 内科
| 脳科 | 🎜 | 女性 | 整形外科 | 22 | 李思 | 🎜>+----------+-----+-----+----------+
セット内の 9 行 (0.00 秒)
しかし、PHP を使用すると、同じ挿入ステートメントでエラーが報告されます。エラー メッセージは次のとおりです。
子行を追加または更新できません: 外部キー制約が失敗します (`clinic`., CONSTRAINT `#sql-9e_13_ibfk_1)。 ` FOREIGN KEY (`room`) REFERENCES `room` (`name`) ON DELETE CASCADE ON UPDATE CASCADE)
問題が何であるかを見つけるのを手伝ってください。ひざまずいて懇願してください!一度泣きながら聞いてみましたが解決しませんでした。
-----解決策---------
文字セットの問題!
1. テーブルの文字タイプ フィールドに文字セットが設定されていません (デフォルトは latin1)
2. データベースに接続した後に文字セットを宣言しませんでした (set names コマンドがありません)
3. utf-8 文字セットを使用しているとのことですが、プログラムには charset=GB18030 があります
実際には gbk 文字セットを使用しています
GB18030 は公式の国家標準であり、まだ実装されていませんコンピューター。したがって、実際に使用されるのはそのサブセット、GBK
です。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルを作成するにはどうすればよいですか?
