У меня есть batchcode.txt, который содержит список пакетного кода.Как вставить текстовый файл в таблицу базы данных mysql
645863
302422
430307
821773
599738
671768
732159
и так далее
У меня есть таблица в моей базе данных, которая называется batchcode с полями «ид», «batchcode».
Моя проблема в том, что он не будет вставлять мой текстовый файл в мою таблицу с именем batchcode. Я уже сделал таблицу импорта и выбора, но ничего не работает ...
Мне нужна помощь, кто-нибудь может мне помочь.
<?php
$host= "localhost";
$user= "root";
$pass= "";
$db="klayton";
$connect= mysql_connect($host,$user,$pass);
if (!$connect)die ("Cannot connect!");
mysql_select_db($db, $connect);
$file = fopen("batchcode.txt","r");
while(! feof($file))
{
$sql = "INSERT INTO batchcode(batchcode) VALUES ('fgets($file)')"; //Insert every read line from txt to mysql database
mysql_query($sql);
}
fclose($file);
?>
я получил ошибку, которая говорит: "Фатальная ошибка: Максимальное время выполнения 30 секунд превышены в C: \ XAMPP \ HTDOCS \ Test \ index.php в строке 22"
Насколько велик 'batchcode.txt' на практике (мегабайт или терабайт)? У вас есть sysadmin-доступ к серверу (Web & PHP)? –
Почему вы не пытаетесь выполнить вставку в одном запросе –
PHP-скрипт, который вы разместили здесь, не содержит 22 строк. Во всяком случае, слегка связанная проблема: функция 'fgets()' не будет называться так, как она написана в данный момент. Вам нужно связать значение вместо этого, то есть '$ sql =" INSERT INTO batchcode (batchcode) VALUES ('".fgets ($ file)."') ";' - Обратите внимание, что это все еще ** уязвимо для SQL-инъекции, хотя **. Вы должны прекратить использовать устаревшие функции 'mysql_ *' и переключиться на MySQLi/PDO (и начать использовать подготовленные инструкции, чтобы у вас не было риска инъекций SQL). –