0

PHPとMySQLのクエリ構築は初めてです。私は大きなフォーム用のプロセッサを持っています。いくつかのフィールドは必須ですが、ほとんどのフィールドはユーザーオプションです。私の場合、HTMLIDとMySQL列名は同じです。配列を使用して$_POSTをINSERTINTOのフィールドと値に変換する方法についてのチュートリアルを見つけましたが、何時間も経っても機能させることができません。配列と変数を使用して非常に単純なINSERTを作成するために一歩下がったが、それでも困惑している。次の行は機能し、100を超える列を持つデータベースに5つのアイテムを挿入します。最初の4つの項目は文字列、5番目の項目、monthlyRentalは整数です。

$query = "INSERT INTO `$table` (country, stateProvince, city3, city3Geocode, monthlyRental) VALUES ( '$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')";

次のように、フィールドの配列を作成して使用すると、次のようになります。

$colsx = array('country,', 'stateProvince,', 'city3,', 'city3Geocode,', 'monthlyRental');
$query = "INSERT INTO `$table` ('$colsx') VALUES ( '$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')";

MySQLの自動インクリメントIDをトリガーする最初の配列項目としてnullを追加する必要があることはわかっています。ほかに何か?

私はかなり新しいので、具体的にお願いします。

4

1 に答える 1

4
$query = "INSERT INTO `$table` ('$colsx') etc...

動作しません。$colsx は配列なので、最終的に生成されるのは文字通り

$query = "INSERT INTO `sometable` ('Array')
                                    ^^^^^---yes, it'll literally say "Array"

これを行う前に、配列を文字列に前処理する必要があります。

$colsx = array(...);
$col_string = implode(',', $colsx);
$query = "INSERT INTO `$table` ($col_string) etc...";
于 2012-07-09T21:15:11.310 に答える