質問: 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を実行できるような形にしたいと考えています。 よろしくお願いします。
回答: array_values() でその連想配列のキーのリストを得るー>カラム名を作成 カラム名を引用符を付けカンマで連結する時に、?も(別の変数にでも)カンマで連結 または、キーのリストの要素数から?を連結 で、これらを使って SQL を生成すればよいのでは? array_values() を使わずに、foreach で全部の要素のキーと値を使って SQL を作るのもそれほど面倒ではなさそうな...