![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
~以上~未満の指定の方法
-
日本語のエイリアスは" "で囲...
-
CONCAT以外で文字列連結できますか
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
商品番号を入力すると、商品名...
-
外部参照してるキーを主キーに...
-
for whichの使い方
-
SQLで特定の項目の重複のみを排...
-
no other~について
-
SELECT 文 GROUP での1件目を...
-
SQLで列名を変数にできないでし...
-
no appleとno applesの違いは?
-
access2003 クエリSQL文に...
-
select文の書き方「半角カナ+...
-
検索対象のデータが「複数レコ...
-
datetime型でNULL値を入れたい。
-
php mysql で WHERE句内に変数...
-
ACCESS 日付の比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日本語のエイリアスは" "で囲...
-
コマンドプロンプトでデータを...
-
~以上~未満の指定の方法
-
INSERTできない。
-
CONCAT以外で文字列連結できますか
-
アクセスのselect文
-
差し込み後、元データを変更し...
-
1、Rstudioで回帰直線を求める...
-
フィルターかけた後、重複を除...
-
外部参照してるキーを主キーに...
-
エクセルで最後の文字だけ置き...
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
カーソル0件の時にエラーを発生...
-
INSERT文でフィールドの1つだ...
-
SQLServerで文字列の末尾からあ...
-
EXISTSを使ったDELETE文
-
datetime型でNULL値を入れたい。
-
SQLで列名を変数にできないでし...
おすすめ情報