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

Hromadné vkládání MySQL přes PHP

Pokud použijete připravený výpis, můžete přeskočit svá $JSON_data pole se smyčkou foreach a spusťte INSERT s tímto kusem dat.

Použití připravených příkazů sníží režii sestavování dotazu, jednoduše odesílá nová data do databáze při každé iteraci smyčky.

$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
    VALUES(?,?,?)");

foreach($JSON_data as $key => $value) {
    $query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
    $query->execute();
}

Všimněte si, že první argument funkce bind_param() říká, kolik hodnot budete vázat, a také typ pro každou hodnotu.
s odpovídá řetězcovým datům i odpovídá celočíselným datům, d odpovídá double (plovoucí desetinná čárka) a b odpovídá binárním datům.

Ještě jedno upozornění, NE uveďte jakákoli data řetězce jako s datový typ říká mysql, aby očekával řetězec. Pokud uvedete ? v připraveném výpisu vám řekne, že počet parametrů je špatný. Pokud uvedete řetězce, bude to citováno v mysql.

UPRAVIT:

Pokud chcete použít stejné paradigma (vložení více řádků do jednoho dotazu), existují způsoby, jak to udělat. Jedním ze způsobů je vytvořit třídu, která bude agregovat bind_param zavolá a proveďte jeden bind_param, když spustíte dotaz. Kód pro to je zde .



  1. Odstranit databázové poštovní zprávy z databáze msdb v SQL Server (T-SQL)

  2. MySQL:Počítejte jednotlivé řádky za den

  3. Získejte datum začátku týdne a datum konce týdne z čísla týdne

  4. Nejlepší způsoby použití příkazu SQL DELETE v tabulce SQL