Я вставляю файлы данных txt в свою базу данных MySQL. И файлы, которые содержат 100-400 слов, вставляются отлично. Нет проблем с ними. Но сегодня у меня есть файл с 9k словами, и мой скрипт перестает работать. Он ничего не вставляет или ничего не обновляет. У меня проблемы с моим скриптом или я должен делать части этого файла? Какое лучшее решение?Невозможно вставить слова 9k в базу данных mysql
Вот мой код:
//$arr - array from file;
foreach ($arr as $temp)
{
$w_name = mysqli_real_escape_string($db_connect, $temp[0]);
$w_minprice = $temp[2];
$w_js_id = $temp[1];
$w_s = $temp[3];
$sql ="SELECT `js_id` FROM `mytable` WHERE `js_id` = '$w_js_id' LIMIT 1";
$result = mysqli_query($db_connect, $sql) or die(mysql_error());
list($temp2) = mysqli_fetch_row($result);
if ($temp2 == '')
{
$sql = "INSERT INTO `mytable` (`name`, `minprice`, `s`, `js_id`, `pl`) VALUES ('$w_name', '$w_minprice', '$w_s', '$w_js_id', '$pl')";
$result = mysqli_query($db_connect, $sql) or die(mysql_error());
if ($result) {$added++;}
}
else
{
$sql = "UPDATE `mytable` SET `minprice` = '$w_minprice', `s` = '$g_s' WHERE `js_id` = '$w_js_id' LIMIT 1";
$result = mysqli_query($db_connect, $sql) or die(mysql_error());
if ($result) {$updated++;}
}
}
Возможно, я должен сделать несколько запросов? Или разделите мои запросы на 10? Но как? Я не уверен в MySQL-запросах. Моя цель - вставить массив с 9 000 значениями в мой db.
UPDATE: Я добавил следующие строки: ini_set ('memory_limit', '-1'); ini_set ('max_execution_time', '-1'); добавлено в мой mysql: max_allowed_packet = 32M;
И он решил мою проблему со сценарием!
Что такое столбец Тип данных ? –
Я подозреваю, что вы превысили длину, разрешенную типом данных столбца. – Alfie
Если его 'TEXT' затем использует' LONGTEXT' –