3

次のトピックは私が尋ねようとしているものに近いですが、mysql 関数が現在 php で非推奨になっており、sql インジェクションを防ぐための準備済みステートメントがあることを考えると、時代遅れです。PHP を使用してすべての $_POST データを mysql に挿入しますか?

基本的に、データベースには膨大な数の列があり、このフォームを送信するときにすべて入力する必要があります。$_POST['firstName']フォームは、各列を同じ名前の入力フィールドと照合します (入力フィールドの name 属性は、それが属する列名と同じです。列も同様ですfirstName)。

mysqli または PDO を使用して、すべての POST データを簡単に取得し、各フィールドを手動で処理せずに MySQL テーブルに自動的に挿入できる方法はありますか? プリペアド ステートメントを使用してそれらをすべてコーディングすることもできますが、大量の列があり、可能であればすべてを一度に実行したいと考えています。

これは、完成させたくないロングバージョンの始まりです。

$stmt = $connection->prepare("INSERT INTO area_retreat 
(user,firstName,lastName,...etc) 
VALUES 
(?,?,?,...etc)
ON DUPLICATE KEY UPDATE 
user=VALUES(user),
firstName=VALUES(firstName),
lastName=VALUES(lastName),
...etc
");
$stmt->bind_param("sss",
    $username,
    $_POST['firstName'],
    $_POST['lastName']
 );

$stmt->execute();
4

2 に答える 2

1

INSERT INTO area_retreat VALUES (?, ?, ...)-- ただし、データベースに表示されているすべての列を一致させる必要があります。

自動インクリメント ID がある場合は、適切な列順序でその列に NULL を指定する必要があります。

于 2013-07-01T18:53:33.330 に答える