列内に選択クエリを挿入するにはどうすればよいですか。この SQL クエリには、画面からのユーザー入力が必要です。
例えば:
2列のテーブルがあります:Query_ID_fruit
、SQL_QUERY_COL_FRUIT
select fruitA from fruits where fruitAttribute = '&fruitAttribute';
上記の SQL クエリを に挿入するにはどうすればよいSQL_QUERY_COL_FRUIT
ですか?
SQL クエリをテーブルに挿入するときは、非常に慎重に行ってください。それらがユーザー入力を使用して構築されている場合、SQL インジェクションの脆弱性が非常に簡単に発生する可能性があります。SQL クエリをテーブルに挿入する前に、パラメーター化されたクエリを使用するか、少なくともユーザー入力をエスケープしてください。
一重引用符をエスケープするには、実際には 2 つ続けて使用するため、文字列内の '' は '.
クエリには、次を使用できます。
'select fruitA from fruits where fruitAttribute = ''&fruitAttribute'';'
これはうまくいくはずです。あることに注意して&fruitAttribute
ください。
任意の select
句の結果をテーブルに挿入できます。宛先テーブルと同じ数の列を (同じ順序で) 返す場合select
は、次を使用できます。
insert into your_destination_table
select ...
宛先テーブルに挿入する必要があるが、すべての列を埋めるつもりがない場合、または選択の列が異なる順序である場合:
insert into your_destination_table (field1, field2, ...)
select ...
もちろん、宛先テーブルの条件をすべて満たす必要があります (例: PK フィールドに null 値がない、select のデータ型が宛先テーブルの列のデータ型と一致する必要がある、など)。
このような?
INSERT INTO fruits_querys (SQL_QUERY_COL_FRUIT)
VALUES ("select fruitA from fruits where fruitAttribute = '&fruitAttribute';");