sql >> Database teknologi >  >> RDS >> Mysql

Sådan indsætter du bestillingsdata fra multidimensional array

Mit eksempel bruger PDO, men jeg tror, ​​du forstår ideen. Du bør også flytte til PDO eller MYSQLI i stedet for mysql

eksemplet:

<?php
// pdo example

$sql = 'INSERT INTO table (field1, field2, field3) VALUES (:value1, :value2, :value3)';

// $dbh is pdo connection
$insertTable = $dbh->prepare($sql);

$countArray = count($array);

for ($i = 0; $i < $countArray; $i++) {
   $insertTable->bindParam(':value1', $array['value1'][$i], PDO::PARAM_INT); // if value is int
   $insertTable->bindParam(':value2', $array['value2'][$i], PDO::PARAM_STR); // if value is str
   $insertTable->bindParam(':value3', $array['value3'][$i], PDO::PARAM_STR);
   $insertTable->execute();
}

?>
 

Indtast navneformat

Jeg kan se, at du gør dette:amount_' . $x . ' dit array-indlæg vil se sådan ud:

[amount_0] => 100
[amount_1] => 200
[amount_2] => 1
[quantity] => 10
[quantity] => 20
[quantity] => 1
 

men hvis du skriver amount[] arrayet vil se sådan ud:

[amount] => Array ( [0] => 100 [1] => 200 [2] => 1 ) [quantity] => Array ( [0] => 10 [1] => 20 [2] => 1

Den sidste mulighed gør det meget bedre at læse arrayet.

MYSQLI eksempel

<?php
$sql = 'INSERT INTO table (field1, field2, field3) VALUES (?, ?, ?)';
$stmt = $mysqli->prepare($sql); 

$countArray = count($array);

for ($i = 0; $i < $countArray; $i++) {
$stmt->bind_param('ssd', $array['value1'][$i], $array['value2'][$i], $array['value3'][$i]);
   $stmt->execute();
} 
?>
 

Som du kan se, står der ssd før parametrene er disse typer der er 4 typer:

  • i =heltal
  • s =streng
  • d =dobbelt
  • b =klat

Du skal altid definere dette.

Rediger

Du skal bruge denne:

<?php 
// Parse the form data and add inventory item to the system
if (isset($_POST['cartOutput'])) { 

$sql= 'INSERT INTO orders (product_name, price, quantity, date_added) VALUES(?,?,?, NOW())';      

$stmt = $myConnection->prepare($sql); 
$countArray = count($_POST["item_name");
for ($i = 0; $i < $countArray; $i++) {
$stmt->bind_param('sss', $_POST['item_name'][$i], $_POST['amount'][$i], $_POST['quantity'][$i]);
$stmt->execute();
}

echo $sql   ; 

exit();
}
?>
 


  1. Sådan forbinder du en database til Python

  2. Fjederstøvle JPA indsats i TABLE med store bogstaver med Hibernate

  3. Sammenlign værdier af tidsstempler og tildel en værdi til hver af dem, hvis de har ændret sig

  4. Hvordan genererer man en UUIDv4 i MySQL?