指定のテーブルに対し、データを登録するSQL文。
DBに接続し、そのDB内にあるテーブルに挿入する場合はテーブル名のみでよいが、DBが異なる場合はDB名をテーブルの前に指定する必要がある。
【記述例1:テーブル名→nameTable】
insert into nameTable (colA, colB, colC) values ($valA, $valB, $valC)
カッコで括られたものが2つあるが、先に出てきたものはフィールド名を指定するもの、後に出てきたものは挿入するデータとなります。
入力したデータは並んだ順のフィールドに挿入されるようになります。
例文では、「nameTable」テーブルに存在する「colA」フィールドには「$valA」、「colB」フィールドには「$valB」、「colC」フィールドには「$valC」がそれぞれ挿入されます。
また、フィールド名側には必要ありませんが、データ側に指定するものが変数ではなく、直接値を指定する場合はクオーテーションで囲む必要があります。
【記述例2】
insert into nameTable (colA, colB, colC) values (‘1’, ‘2’, ‘3’)
先ほども記述しましたが、指定してあるフィールドと挿入するデータの並び順は比例しますので、フィールドの種別と入力するデータの形式が合致していない場合は正しい値が登録されない場合があります。
例えば、int型のフィールドに対し数値ではなく文字列を指定した場合、その文字列は無視されてしまい、DBに挿入されません。場合によっては「0」と挿入されてしまいます。
値のデータ型が違うことで登録できなかった、という場合は実行エラーではないのでエラーが出ずにそのまま実行されてしまいます。
エラーが出ないので間違った値を入力した場合の原因特定が遅れてしまうかもしれませんので注意してください。
データを挿入する場合はフィールドの並び順と値のデータ型に注意し、正しいデータが登録されるように作りましょう。
投稿者プロフィール
最新の投稿
- PHP関連2022.08.24配列内に特定の値があるかどうかを判別する【in_array】
- PHP関連2019.02.06プログラム設計のお話し〜その1
- PHP関連2018.09.12横scroll付きのoverflow:hidden要素内で要素の固定を実装 – css:sticky
- JavaScript2016.05.11配列について