более 100 строк не вставляются в postgresql через форму php

Я пытаюсь вставить более 100 строк в базу данных postgresql, используя PHP в цикле. Я не получаю никаких ошибок.

Данные вставляются, когда я пытаюсь добавить от 50 до 60 записей. но когда записи около 100 и выше, они не вставляются.

Ниже приведен код, который я попробовал. Пожалуйста, пройдите и помогите мне решить эту проблему.

Заранее спасибо.

<?php
$userid = $_SESSION['user_id'];
$array ='';
$resultAgain ='';
if (isset($_POST['save'])) {

// $sponsorship_id = $_POST['sponsorid'];
$resultAgain=array();
$resultAgain = $_SESSION['arr_rows'];

for ($i = 0; $i <count($resultAgain); ++$i) {

$recieptid = $resultAgain[$i]['recieptid'];
$childid = $resultAgain[$i]['childid'];
$openingbalance_fee = $resultAgain[$i]['openingbalance_fee'];
$openingbalance_familyhelp = $resultAgain[$i]['openingbalance_familyhelp'];
$mayreciept = $resultAgain[$i]['mayreciept'];
$december_reciept = $_POST['decreciept'.$resultAgain[$i]['presentclass']];
$adminfees = $_POST['adminfees'.$resultAgain[$i]['presentclass']];
$schoolfee = $_POST['schoolfee'.$resultAgain[$i]['presentclass']];
$familyhelp = $resultAgain[$i]['family_help'];
$year = $_POST['yearName'];
$submit = $_POST['save'];
// call insert function
$sql1="SELECT fn_reciept_insert($childid,
'$openingbalance_fee',
'$openingbalance_familyhelp',
'$mayreciept',
'$december_reciept',
'$adminfees',
'$familyhelp',
'$schoolfee',
'$year',
$userid,
localtimestamp,
$userid,
localtimestamp)";
$result1 = pg_query($dbconn,$sql1);
if (!$result1) {
echo '<script>alertMX("Data Not Updated")</script>';
}
else
{
echo '<script>alertMX("Data inserted Successfully")</script>';
} }
}
}
?>

0

Решение

Во-первых, убедитесь, что вы закрываете это соединение с БД в конце вашего скрипта. Тогда, если у вас продолжаются проблемы, попробуйте увеличить max_connections https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server#max_connections

ALTER SYSTEM SET max_connections TO 300;

и перезапустите сервер postgresql.

Также проблема может быть не в количестве данных, которые вы пытаетесь INSERT, Вы создаете запрос, используя неэкранированные данные. Что это значит? Если одна из ваших переменных, которые вы поместили в эту большую строку запроса, имеет ' символ, строка запроса будет испорчена, и это большая проблема безопасности (читайте о впрыск sql). Чем больше объем данных, тем больше вероятность ' будет появляться. Вам следует избежать ваших данных

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]