私はこのような配列を持っています
$a = array( 'phone' => 111111111, 'image' => "sadasdasd43eadasdad" );
var-dumpを実行すると、これが表示されます->
{ ["phone"]=> int(111111111) ["image"]=> string(19) "sadasdasd43eadasdad" }
今私はINステートメントを使用してこれをDBに追加しようとしています-
$q = $DBH->prepare("INSERT INTO user :column_string VALUES :value_string");
$q->bindParam(':column_string',implode(',',array_keys($a)));
$q->bindParam(':value_string',implode(',',array_values($a)));
$q->execute();
私が抱えている問題は、爆縮が文字列を返すことです。ただし、「phone」列はデータベース内の整数であり、配列はそれを整数として格納しています。したがって、最終的なクエリは次のようになり、SQLエラーが発生します-
INSERT INTO user 'phone,image' values '111111111,sadasdasd43eadasdad';
これは間違ったクエリです。それを回避する方法はありますか?
私の列名は、ユーザーが挿入したいものに基づいて動的になっています。したがって、:phoneや:imageのようなプレースホルダーを使用することはできません。これらの2つの列の値を常に取得できるとは限らないためです。これを回避する方法があれば教えてください。それ以外の場合は、更新の種類ごとに複数の関数を定義する必要があります。
ありがとう。