PHP MySQL


連想配列
(
[name] => "山田"
[age] => "23"
[comment] => "コメント"
)

があります。
各配列を分け、配列名をカラム名、値をそのカラムに挿入する値としてデータベースに登録したいのですが、セキュリティ上単に INSERT INTO hatena (...) VALUES ($array[name]) とはせず、adodbを利用し、 "INSERT INTO....", array($array..) としたいとかんがえています。

ただ、動的なため幾つのカラムにいくつのデータを挿入するか予測できません。従って自動的にSQLを作成し、(上の配列であれば insert into hatena ('name', 'age', 'comment') values (?,?,?))その後、各配列を変数に代入し、SQLを実行できるような形にしたいと考えています。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2009/01/11 14:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tezcello No.1

回答回数460ベストアンサー獲得回数69

ポイント60pt

array_values() でその連想配列のキーのリストを得るー>カラム名を作成

カラム名を引用符を付けカンマで連結する時に、?も(別の変数にでも)カンマで連結

または、キーのリストの要素数から?を連結

で、これらを使って SQL を生成すればよいのでは?

array_values() を使わずに、foreach で全部の要素のキーと値を使って SQL を作るのもそれほど面倒ではなさそうな...

id:esecua

一通りコードを書いていただけると助かります。

2009/01/04 17:31:47

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 yc24 5 4 0 2009-01-10 22:19:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません