Вставка нескольких строк в таблицу с использованием PHP - PullRequest
2 голосов
/ 29 декабря 2011

Я пытаюсь вставить несколько строк в БД MySQL, используя 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";
}

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

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);
0 голосов
/ 29 декабря 2011

Пожалуйста, попробуйте этот код. Mysql запрос не будет принимать несколько вставок с использованием php. Поскольку это цикл for, а значения динамически изменяются, вы можете включить SQL-запрос вставки внутри каждого цикла. Он будет вставлять каждую строку с динамическими значениями. Пожалуйста, проверьте код ниже и дайте мне знать, если у вас есть какие-либо вопросы

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";
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...