Я пытаюсь вставить несколько строк в MySQL DB с помощью PHP и HTML. Я знаю базовый PHP и искал множество примеров на разных форумах и создал один скрипт, но он не работает. Может кто-нибудь помочь в этом. Вот мой сценарий:
include_once 'include.php'; foreach($_POST['vsr'] as $row=>$vsr) { $vsr=mysql_real_escape_string($vsr); $ofice=mysql_real_escape_string($_POST['ofice'][$row]); $date=mysql_real_escape_string($_POST['date'][$row]); $type=mysql_real_escape_string($_POST['type'][$row]); $qty=mysql_real_escape_string($_POST['qty'][$row]); $uprice=mysql_real_escape_string($_POST['uprice'][$row]); $tprice=mysql_real_escape_string($_POST['tprice'][$row]); } $sql .= "INSERT INTO maint_track (`vsr`, `ofice`, `date`, `type`, `qty`, `uprice`, `tprice`) VALUES ('$vsr','$ofice','$date','$type','$qty','$uprice','$tprice')"; $result = mysql_query($sql, $con); if (!$result) { die('Error: ' . mysql_error()); } else { echo "$row record added"; }
MySQL может вставлять несколько строк в один запрос. Я оставил ваш код как можно ближе к оригиналу. Имейте в виду, что если у вас много данных, это может создать большой запрос, который может быть больше, чем будет принимать MySQL.
include_once 'include.php'; $parts = array(); foreach($_POST['vsr'] as $row=>$vsr) { $vsr=mysql_real_escape_string($vsr); $ofice=mysql_real_escape_string($_POST['ofice'][$row]); $date=mysql_real_escape_string($_POST['date'][$row]); $type=mysql_real_escape_string($_POST['type'][$row]); $qty=mysql_real_escape_string($_POST['qty'][$row]); $uprice=mysql_real_escape_string($_POST['uprice'][$row]); $tprice=mysql_real_escape_string($_POST['tprice'][$row]); $parts[] = "('$vsr','$ofice','$date','$type','$qty','$uprice','$tprice')"; } $sql = "INSERT INTO maint_track (`vsr`, `ofice`, `date`, `type`, `qty`, `uprice`, `tprice`) VALUES " . implode(', ', $parts); $result = mysql_query($sql, $con);
-include_once 'include.php'; $parts = array(); foreach($_POST['vsr'] as $row=>$vsr) { $vsr=mysql_real_escape_string($vsr); $ofice=mysql_real_escape_string($_POST['ofice'][$row]); $date=mysql_real_escape_string($_POST['date'][$row]); $type=mysql_real_escape_string($_POST['type'][$row]); $qty=mysql_real_escape_string($_POST['qty'][$row]); $uprice=mysql_real_escape_string($_POST['uprice'][$row]); $tprice=mysql_real_escape_string($_POST['tprice'][$row]); $parts[] = "('$vsr','$ofice','$date','$type','$qty','$uprice','$tprice')"; } $sql = "INSERT INTO maint_track (`vsr`, `ofice`, `date`, `type`, `qty`, `uprice`, `tprice`) VALUES " . implode(', ', $parts); $result = mysql_query($sql, $con);
Попробуйте этот код. Запрос Mysql не будет принимать множественные вставки с использованием php. Поскольку это цикл for и значения динамически изменяются, вы можете включить запрос sql-insert внутри каждого цикла. Он будет вставлять каждую строку с динамическими значениями. Пожалуйста, проверьте приведенный ниже код и дайте мне знать, если у вас есть какие-либо проблемы
include_once 'include.php'; foreach($_POST['vsr'] as $row=>$vsr) { $vsr=mysql_real_escape_string($vsr); $ofice=mysql_real_escape_string($_POST['ofice'][$row]); $date=mysql_real_escape_string($_POST['date'][$row]); $type=mysql_real_escape_string($_POST['type'][$row]); $qty=mysql_real_escape_string($_POST['qty'][$row]); $uprice=mysql_real_escape_string($_POST['uprice'][$row]); $tprice=mysql_real_escape_string($_POST['tprice'][$row]); $sql = "INSERT INTO maint_track (`vsr`, `ofice`, `date`, `type`, `qty`, `uprice`, `tprice`) VALUES ('$vsr','$ofice','$date','$type','$qty','$uprice','$tprice')"; $result = mysql_query($sql, $con); if (!$result) { die('Error: ' . mysql_error()); } else { echo "$row record added"; } }
-include_once 'include.php'; foreach($_POST['vsr'] as $row=>$vsr) { $vsr=mysql_real_escape_string($vsr); $ofice=mysql_real_escape_string($_POST['ofice'][$row]); $date=mysql_real_escape_string($_POST['date'][$row]); $type=mysql_real_escape_string($_POST['type'][$row]); $qty=mysql_real_escape_string($_POST['qty'][$row]); $uprice=mysql_real_escape_string($_POST['uprice'][$row]); $tprice=mysql_real_escape_string($_POST['tprice'][$row]); $sql = "INSERT INTO maint_track (`vsr`, `ofice`, `date`, `type`, `qty`, `uprice`, `tprice`) VALUES ('$vsr','$ofice','$date','$type','$qty','$uprice','$tprice')"; $result = mysql_query($sql, $con); if (!$result) { die('Error: ' . mysql_error()); } else { echo "$row record added"; } }