2015-11-19 2 views
0

На моем локальном сервере этот скрипт отлично работает. Когда я загружаю этот скрипт в прямом эфире, он не работает должным образом.foreach Данные не обновляются в базе данных

Он вставляет только 126 строк данных в базу данных, но мне нужно загрузить не менее 500 строк за раз.

<?php 
include 'database-config.php'; 
foreach($_POST['classroll'] as $row=>$classroll) 
{ 
    $sclassroll = $classroll; 
    $mark = $_POST['mark'][$row]; 
    $type = $_POST['rtype']; 
    $session = $_POST['rsession']; 
    $department = $_POST['rdepartment']; 
    $examtype = $_POST['rextype']; 
    $examyear = $_POST['rexyear']; 
    $examsubject = $_POST['rexmarksubject']; 

$stmt = $dbh->prepare("INSERT INTO exammarks(studnettype, studentsession, studentdepartment, studentclassroll, examtype, examyear, examsubjec, exammarks) VALUES (:studnettype, :studentsession, :studentdepartment, :studentclassroll, :examtype, :examyear, :examsubjec, :exammarks)"); 

    $stmt->bindParam('studnettype', $type); 
    $stmt->bindParam('studentsession', $session); 
    $stmt->bindParam('studentdepartment', $department); 
    $stmt->bindParam('studentclassroll', $sclassroll); 
    $stmt->bindParam('examtype', $examtype); 
    $stmt->bindParam('examyear', $examyear); 
    $stmt->bindParam('examsubjec', $examsubject); 
    $stmt->bindParam('exammarks', $mark); 


$stmt->execute(); 
} 
header('Location: ../home.php'); 
?> 
+0

Есть ли вероятность того, что есть ошибка MySQL после 126th вставки? – SheppardDigital

+0

вы можете проверить, совпадает ли максимальное время выполнения и время выполнения сценария на вашем локальном сервере с вашим сервером в реальном времени? –

+0

Необходимо выполнить максимальное время выполнения. Напишите 'ini_set ('max_execution_time', 300); 'в верхней части страницы – Saty

ответ

0

Вполне возможно, что ваше определение exammarks стол на вашем рабочем сервере содержит уникальный индекс, который не присутствует на вашем локальном сервере. Если это так, некоторые из ваших операций INSERT могут завершиться ошибкой.

Код, который вы нам указали, не проверяет наличие ошибок. Очевидно, что когда ваша программа занимается данными с высоким значением (например, результаты экзаменов студентов), вы должны проверить наличие ошибок.

Попробуйте вместо этого:

if(!$stmt->execute()) { 
    print_r($arr = $stmt->errorInfo()); 
} 
else { 
    /* INSERT statement completed correctly */ 
} 
+0

не отображается никаких ошибок. –

Смежные вопросы