sql >> データベース >  >> RDS >> Mysql

PHPの「複数挿入」を使用して4行すべてを同時に挿入

    コントロールの名前を変更して、配列として投稿するようにします

    <input type="text" name="teamname[G1]">
    <input type="text" name="teamname[G2]">
    

    これが、$varTname = $_POST['teamname'];を使用する理由です。 $varTname は配列であり、teamnameの4つの値のそれぞれです。 $varTname['G#']として設定されます ここで、#はその入力フィールドのグループに設定した数と一致します。

    次に、forループを使用してデータを取得し、次のようなクエリを実行します。その間、SQLインジェクションの脆弱性を修正することもできます。念のため、データをさらに衛生的にすることもできます

    $varTname = $_POST['teamname'];
    $varCity = $_POST['city'];
    $varBplayer = $_POST['bestplayer'];
    $varYearformed = $_POST['yearformed'];
    $varWebsite = $_POST['website'];
    
    $stmt = $mysqli->prepare('INSERT INTO Teams (teamname, city, bestplayer, yearformed, website) VALUES (?,?,?,?,?,?)');
    $varTname1Bind = "";
    $varTnameBind = "";
    $varCityBind = "";
    $varBplayerBind = "";
    $varWebsiteBind = "";
    
     // assuming they are all strings, adjust where needed
     $stmt->bind_param('sssssss',
        $varTname1Bind,
        $varTnameBind,
        $varCityBind,
        $varBplayerBind,
        $varYearformedBind,
        $varWebsiteBind);
    
    for($i = 1; i < 5; $i++)
    {
        $varTname1Bind = $varTname['G'.$i];
        $varTnameBind = $varTname['G'.$i];
        $varCityBind = $varCity['G'.$i];
        $varBplayerBind = $varBplayer['G'.$i];
        $varYearformedBind = $varYearformed['G'.$i];
        $varWebsiteBind = $varWebsite['G'.$i];
    
        $stmt->execute();
    }
    

    実行する必要のあるコードの量を節約できます



    1. Postgres pl/javaの警告

    2. select...into に対して sp_executeSql を実行しますが、Temp テーブル データを選択できません

    3. MySQLコネクタのソースコードを変更してPCにインストールするにはどうすればよいですか?

    4. MySQL:FKエラーのあるテーブルの作成(errno 150)