
PHP+MySQLにてプログラムを作成しております。
まったくの初心者なのですが、ネットや参考書を片手に形になるものは一応できました。
これまではわからないながらも何とか調べて対応してきたのですが、どうしても対応できない事態に陥ってしまい、投稿したしだいです。
フィールドの数が違うだけで、型はほぼ同じ2つのテーブルがあり、1つにはINSERT文で追加できるが、もうひとつにはできないという事象です。
////////////【OK】////////////
INSERT INTO
action
(
anum ,
mnum ,
kekka
)
VALUES
(
'$anum',
'$mnum',
'$kekka'
);
////////////【NG】////////////
INSERT INTO
check
(
aprched,
aprch
)
VALUES
(
'12',
'555'
);
/////////////////////////////////////////////////
【NG】の文は【OK】をコピペした後、field名などを対応する名前に変えただけです。なぜフィールド部を変更しただけでエラーになるのかまったく糸口がつかめません。
質問の仕方もわかりにくいかと思いますが、心当たりの方いらっしゃればご意見お聞かせください。
No.1ベストアンサー
- 回答日時:
「check」は、MySQLの予約語です。
http://dev.mysql.com/doc/refman/4.1/ja/reserved- …
予約語と同じ名前を表や列に使う場合は、MySQLでは「`」(バッククォート)で囲む必要があります。
つまり、
INSERT INTO `check`(aprched,aprch) ~
のように指定します。
英単語を表名や列名に使う場合、予約語とぶつかることも多いので、「`」で囲む週間をつけておいた方がいいでしょう。
ちなみに、「`」で囲むというのは、MySQL独自仕様で、標準SQLや主要なRDBMSでは、「"」(ダブルクォーテーション)で囲みます。
chukenkenkou様ご回答ありがとうございます。
すごく基本的なところなのですね。sqlMyadminを使用しているレンサバを借りて実験していて、そこでレコードの挿入をするときには「`」がついてて何か関係あるのかな・・・とかは感じてたのですが。。
「`」=「'」と同意のつもりでもいました(汗
普通の??キーボードで「`」が標準では入力できないようなので、それでも引っかかってました。。
すごく助かりました。ありがとうございます。
No.2
- 回答日時:
>「`」=「'」と同意のつもりでもいました
「'」(シングルクォーテーション)で囲んだものは、文字定数です。
例)'ABC'→文字のABC
'123'→文字の123。ただし、MySQLでは、数値として扱うと自動的に数値にキャストしてくれる。(というか、されてしまう)
「"」(ダブルクォーテーション)で囲んだものもMySQLでは、文字定数として扱われます。
例)"ABC"→文字のABC
なお、MySQLにはサーバ起動モードで、MySQL構文モード(デフォルト)と、ANSI構文モードがあり、ANSI構文モードで起動すると、「"」は標準SQL通り予約語と同じ表名や列名を使う場合に名前を囲む記号として扱われます。
>普通の??キーボードで「`」が標準では入力できないよう
「@」のキーのところにありませんか?
私のキーボードでは、Shift+@で入力できますが?
chukenkenkou様
たびたび勉強させてもらいます。
「`」入力できました。汗
自分の使っている参考書は、素材集のようなものと、Mysqlはかいつまんだ部分しかないので、本格的にするにはまだまだ修行が必要なようですね。。
精進いたします。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP ここで言う「アロー演算子」の役割を教えてください。 1 2022/03/26 02:38
- PHP php エラー 3 2022/11/18 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP php エラー 2 2022/10/23 16:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
~以上~未満の指定の方法
-
コマンドプロンプトでデータを...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
差し込み後、元データを変更し...
-
外部参照してるキーを主キーに...
-
エクセルの関数について教えて...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
SELECT 文 GROUP での1件目を...
-
SQLServerで文字列の末尾からあ...
-
誰か教えてください
-
UPDATE文のWHERE条件に他のテー...
-
NOT INをNOT EXISTSで書き直したい
-
SQLで列名を変数にできないでし...
-
JavaScriptの定数名が取り消し...
-
Visual Basicでツリービューリ...
-
SQLで特定の項目の重複のみを排...
-
updateでグループ化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
~以上~未満の指定の方法
-
コマンドプロンプトでデータを...
-
レコードの最大値
-
SQLiteでINSERT OR UPDATE
-
CONCAT以外で文字列連結できますか
-
アクセスのselect文
-
INSERTできない。
-
SQLの副問い合わせについて
-
Accessのクリエで都道府県だけ...
-
連番の取得
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SQLで特定の項目の重複のみを排...
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
INSERT文でフィールドの1つだ...
おすすめ情報