この投稿は、私のコードが効率的に記述されているかどうかを明確にするためのものです。1 つの関数内に値を挿入するには、複数のテーブルが必要です。これらの値はユーザー経由で送信されるため、SQL の挿入を防ぐためにプリペアド ステートメントを使用しました (設定された変数も関数の前に効果的に消去されます)。
public function the_name($var1, $var2)
{
$mysqli->autocommit(FALSE);
$stmt_one = $mysqli->prepare("Insert into TABLE SET $var1 = ?, $var2 = ? ");
$stmt_two = $mysqli->prepare("Insert into TABLE SET $var1 = ?, $var2 = ? ");
$stmt_one->bind_param('is',$var1,$var2);
$stmt_two->bind_param('is',$var1,$var2);
$stmt_one->execute();
$stmt_two->execute();
$mysqli->commit();
$stmt_one->close();
$stmt_two->close();
}
関数は正常に動作しますが、これは 2 つの異なるテーブルに複数の値を挿入する最良の方法ですか? この関数は長蛇の列のようです...これが実際にトランザクションで準備されたステートメントを記述する正しい方法であるかどうかを明確にします。
更新: この関数は、ユーザーが仲間のユーザーに投稿を送信したときに、通知を作成するために使用されます。したがって、投稿を投稿テーブルに挿入し、通知を通知テーブルに挿入できます。