sql >> Databáze >  >> RDS >> Mysql

Pomocí PHP „insert multiple“ vložíte všechny 4 řádky současně

změňte názvy ovládacích prvků tak, aby byly publikovány jako pole

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

proto, když použijete $varTname = $_POST['teamname']; $varTname je pole a každá ze 4 hodnot teamname jsou nastaveny jako $varTname['G#'] kde # odpovídá číslu, které jste nastavili pro danou skupinu vstupních polí.

pak použijte cyklus for k získání dat a provedení vašeho dotazu, něco jako níže. zatímco jste na tom, můžete také opravit svou zranitelnost SQL Injection. možná budete chtít pro jistotu provést více sanitace dat

$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();
}

vám ušetří, kolik kódu musíte udělat



  1. Sloučit dvě tabulky / zřetězit hodnoty do jednoho sloupce

  2. Má Oracle koncept filtrovaného indexu?

  3. MYSQL vlevo Připojit COUNTS z více tabulek

  4. mysql:zobrazit všechna otevřená připojení k dané databázi?