Я следующий сценарий, который я написал:Php скрипт только вставив 5000 строк в базу данных PhpMyAdmin
<?php
$filename = "readingDataFromThis.LOG";
$filterarray= array("stuff to remove from the file", "and more stuff");
if (file_exists($filename) && is_readable ($filename)) {
ini_set('memory_limit','16M');
ini_set('max_execution_time', 600);
$con=mysqli_connect("server","username","password","database_name");
$count = 0;
$fh = fopen($filename, "r");
if ($fh) {
while (($line = fgets($fh)) != false) {
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (strpos_arr($line, $filterarray) == false) {
$month = substr($line, 3,5);
$day = substr($line, 0,2);
$year = substr($line, 6,8);
$timestamp = substr($line, 9, 17);
$message = substr($line, 18);
mysqli_query($con,"INSERT INTO Conversation (Month, Day, Year, Time, Message)
VALUES ('$month', '$day', '$year', '$timestamp', '$message')");
echo "Inserted record " . $count++ . "<br>";
}
}
}
fclose($fh);
mysqli_close($con);
echo "Complete.";
}
function strpos_arr($haystack, $needle) {
if(!is_array($needle)) $needle = array($needle);
foreach($needle as $what) {
if(($pos = strpos($haystack, $what))!==false) return $pos;
}
return false;
}
?>
Когда я запускаю его, у меня нет никаких проблем, выход я получаю на экране в основном выглядит следующим образом:
Inserted record 0
Inserted record 1
...
Inserted record 14000+
Complete.
Однако, когда я иду к столу в самой базе данных, я считаю, что только ТОЧНО первые 5000 записей вставлены в базу данных. Что здесь происходит?
'phpMyAdmin' имеет ограничение на количество строк, которое будет отображаться сразу. Вы уверены, что это не то, над чем вы работаете? Что делает 'SELECT COUNT (*) FROM Convers' show? – Barmar
SELECT COUNT (*) FROM Диалог > Возвраты> COUNT (*) ---- Итак, я вставил одну запись вручную, и я могу видеть 5001 записи из моего основного представления таблицы. – cuckoo
У любого столбца есть уникальные индексы? У вас могут быть дубликаты. – Barmar