Я попытался во второй попытке использовать LOAD DATA INFILE для загрузки записей из CSV в базу данных MySQL, но я всегда сталкиваюсь с ошибками во всех своих попытках, разными ошибками каждый раз, поэтому я бы предпочел используйте примитивный способ зацикливания записей.PHP LOAD DATA INFILE VS Fopen
Мой последний сценарий:
<?php
//Connect to Database
$maindir = realpath(__DIR__);
include($maindir . '/connectme.php');
$queme = "LOAD DATA INFILE '" . $_FILES['fromfileupload']['tmp_name'] . "'
INTO TABLE thecardb
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY ',,,\\r\\n'
IGNORE 1 LINES
(carid, carname, carbrand, carprice, carcolor)" ;
if (mysqli_query($concon, $queme))
{
echo "Success";
}
?>
Моя последняя ошибка
Access denied for user '########_######'@'##.#.#.##' (using password: YES)
я заменил части ошибки, как # по причинам конфиденциальности.
Это и всегда раздражало меня, я считаю, что часть проблемы связана с некоторыми настройками разрешения в php.ini или из других конфигураций PHP, которые я не могу получить или найти (я использую веб-хостинг и не запускать этот сайт на моем собственном сервере). Смогу ли я использовать fopen() для загрузки записей из CSV вместо использования LOAD DATA INFILE? Я думаю, что это мое самое простое решение прямо сейчас, которое может работать (используя mysqli_multi_query). Я имею дело только с 5000-10000 записей.
Спасибо за это, но, пожалуйста, прочитайте мой пост, я уже в курсе возможных проблем безопасности. Да, чтобы # 1- # 3, и проблема №4, снова я использую план веб-хостинга для своего веб-сайта и доступ к определенным конфигурациям, например php.ini, для меня проблема. Мой вопрос: было бы хорошо использовать fopen или другие методы петли, чтобы добавить 5000 записей в базу данных, поскольку я планирую просто пойти таким образом –
Да, все будет хорошо. Просто создайте [подготовленный оператор] (http://docs.php.net/manual/en/mysqli.quickstart.prepared-statements.php), а затем зациклируйте файл через [fgetcsv] (http: //docs.php .net/fgetcsv), присвойте значения связанным параметрам ([list()] (http://docs.php.net/list) может быть полезно здесь) и выполнить инструкцию. 5k записей ... это ничего ;-) – VolkerK