Intereting Posts
Изображение PHP / Imagick / PDFlib Flop изменяет свою битовую глубину Как правильно настроить laravel framework в wampserver? Как анализировать URL-адрес Zend для параметров? Group By и отображение записей на дату Невозможно найти сценарий, перенаправляющий мобильный трафик в собственном веб-сайте WP Извлечение значений узла с помощью XPath Как получить временную метку Unix в php на основе часового пояса Экспорт веб-страницы в PDF с помощью FPDF Как подключить localhost phpmyadmin к эмулятору Android Как начать использовать и разрабатывать на Ubuntu Linux? Laravel 5.5 изменить неаутентифицированный URL-адрес перенаправления входа Динамически настроить PHP для обеспечения безопасности потоков –enable-maintainer-zts или использовать yum для установки pthreads? Какова наилучшая практика для доступа к конфигурации внутри функции? где находятся старые php-документы? Есть ли способ отключить ссылку href при щелчке на n дней использовать файлы cookie в JavaScript

Несколько полей SET с использованием LOAD DATA INFILE для формата даты

Я могу использовать LOAD DATA INFILE, чтобы успешно загрузить файл csv. Я могу пропустить все данные / столбцы, которые мне не нужны ( Руководство 13.2.6 )

Я смог использовать команду SET для установки формата даты. Мой вопрос: что, если у меня есть несколько полей Date, любые изменения команды SET в сочетании с вышеизложенным не хотят работать, когда у меня больше 1 SET.

<?php if (isset($_POST['load'])) { include '_inc/include.php'; $temp = $_FILES['myfile']['tmp_name']; $sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE 000_1616 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (id, @somedate, name, anotherdate, color, 1moredate) SET sdate = IF(LENGTH(@somedate)=7,STR_TO_DATE(@somedate,'%m/%d/%Y'),STR_TO_DATE(@somedate,'%m/%d/%y'))"; mysql_query($sqlstatement) or die(mysql_error()); echo "It worked"; echo "<p><a href='upload-display.php'>go to page</a></p>"; } ?> <form method="post" action="upload.php" enctype="multipart/form-data"> <input name="myfile" type="file" /> <input name="load" type="submit" value="submit" /></form> 

Мой SET идет, как этот

 SET sdate = IF(LENGTH(@somedate)=7,STR_TO_DATE(@somedate,'%m/%d/%Y'),STR_TO_DATE(@somedate,'%m/%d/%y'))"; 

или

 $sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE 000_1616 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (id, @somedate, name, anotherdate, color, 1moredate) SET sdate = IF(LENGTH(@somedate)=7,STR_TO_DATE(@somedate,'%m/%d/%Y'),STR_TO_DATE(@somedate,'%m/%d/%y'))"; 

Я использовал @somedate для первого поля даты, которое действительно является sdate. Это хорошо работает, пока я не пытаюсь добавить еще 4 поля даты с помощью SET. Я хотел бы добавить @anotherdate (anotherdate) и @ 1moredate (1moredate) Нужно ли мне настраивать массив? Нужно ли мне что-то делать в таблице на стороне phpMyADMIN? Сейчас они отформатированы в Date, но все они возвращаются на 000-00-00, за исключением первой даты подачи.

Вот SQL:

 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Database: `database_track` -- -- -------------------------------------------------------- -- -- Table structure for table `000_datetest` -- CREATE TABLE IF NOT EXISTS `000_datetest` ( `id` int(11) NOT NULL auto_increment, `sdate` date default NULL, `name` varchar(100) collate utf8_unicode_ci default NULL, `anotherdate` date NOT NULL, `color` varchar(50) collate utf8_unicode_ci NOT NULL, `1moredate` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=6 ; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 

Пример csv:

 +----+---------------+-------------------+---------------------+------------+-------------------+ | id | sdate | name | anotherdate | color | 1moredate | +----+---------------+------------------------+---------------+------------+-------------------+ | 1 | 2011-08-21 | Tom Thumb | 08/16/2010 | Blue | 1/5/08 | +----+---------------+------------------------+---------------+------------+-------------------+ | 1 | 2009-05-12 | Don Duck | 03/22/2012 | Yellow | 9/15/03 | +----+---------------+------------------------+---------------+------------+-------------------+ 1 row in set (0.00 sec) 

Я надеюсь, что это поможет, см. Физический файл в комментарии ниже