sql >> Database >  >> RDS >> Mysql

PHP "insert multiple" gebruiken om alle 4 rijen tegelijkertijd in te voegen

verander de namen van je besturingselementen zodat ze als arrays posten

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

dit is waarom wanneer je $varTname = $_POST['teamname']; . gebruikt $varTname is een array en elk van de 4 waarden van teamname zijn ingesteld als $varTname['G#'] waarbij # overeenkomt met het getal dat u instelt voor die groep invoervelden.

gebruik vervolgens een for-lus om de gegevens te krijgen en uw query uit te voeren, zoiets als hieronder. terwijl je bezig bent, kun je ook je SQL-injectie-kwetsbaarheid oplossen. misschien wil je voor de zekerheid ook wat meer sanitaire voorzieningen voor de gegevens

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

bespaart u hoeveel code u moet doen



  1. FOUT 2002 (HY000):Kan geen verbinding maken met lokale MySQL-server via socket '/tmp/mysql.sock'

  2. Hoe kan ik een enkele rij vergrendelen in Oracle SQL?

  3. ERROR 1048 (23000) Kolom kan niet NULL zijn, maar ik voeg geldige gegevens in

  4. .NET 4:EDMX-bestand configureren in een andere assembly in Web.Config