मेरा उदाहरण पीडीओ का उपयोग करता है लेकिन मुझे लगता है कि आपको यह विचार मिलता है, साथ ही आपको MySQL के बजाय PDO या MYSQLI में जाना चाहिए
उदाहरण:
<?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();
}
?>
इनपुट नाम प्रारूप
मैं देख रहा हूँ कि आप यह कर रहे हैं:amount_' . $x . '
आपकी सरणी पोस्ट इस तरह दिखेगी:
[amount_0] => 100
[amount_1] => 200
[amount_2] => 1
[quantity] => 10
[quantity] => 20
[quantity] => 1
लेकिन अगर आप amount[]
लिखते हैं सरणी इस तरह दिखेगी:
[amount] => Array
(
[0] => 100
[1] => 200
[2] => 1
)
[quantity] => Array
(
[0] => 10
[1] => 20
[2] => 1
अंतिम विकल्प सरणी को पढ़ने के लिए इसे बेहतर बनाता है।
MYSQLI उदाहरण
<?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();
}
?>
जैसा कि आप देख सकते हैं कि वहाँ खड़ा है ssd
पैरामीटर से पहले ये प्रकार हैं, 4 प्रकार हैं:
- i =पूर्णांक
- s =स्ट्रिंग
- d =डबल
- b =बूँद
आपको इसे हमेशा परिभाषित करना चाहिए।
संपादित करें
आपको इसका उपयोग करना चाहिए:
<?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();
}
?>