Привет.
Придумалось ещё два способа загружать данные, возможно кому-то будет интересно.
1. если нужно читать данные из STDIN, можно указать /dev/stdin
$dbh->do('load data local infile "/dev/stdin" into table tbl');
по идее, должно работать во всех юниксах
2. для любого дескриптора можно указать соответствующий файл из procfs
$dbh->do("load data local infile \"/proc/$$/fd/".fileno(FD)."\" into table tbl")
В линуксе работает, в остальных системах не знаю как устроена procfs
2009/6/17 Sergey Zhuravlev <[email protected]>:
> Сделать можно, написав xs(или подпатчив DBD::mysql), и используя
> mysql_set_local_infile_handler из mysql api.
> Вызовом этой функции можно переопределить стандартные хэндлеры по
> открытию и, главное, чтению файла указанного в INFILE.
>
> Подробности здесь
> http://dev.mysql.com/doc/refman/5.0/en/mysql-set-local-infile-handler.html
>
> Но в большинстве случаем это будет овердоз, проще честный файл записать.
>
> зы Никто из знакомых эти хэндлеры не переопределял...
>
> 2009/6/16 Denis Evdokimov <[email protected]>:
>> Пытаюсь понять, как сделать аналог "LOAD DATA LOCAL INFILE" только чтоб
>> вместо файла передать файловый дескриптор.
>> Возможно кто-то уже решал такую задачу?
>>
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>>
>>
>
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org