Forum Webscript.Ru

Программирование => PHP => Тема начата: Xander от 12 Сентября 2003, 22:00:29

Название: LOAD DATA и контроль правильности данных
Отправлено: Xander от 12 Сентября 2003, 22:00:29
Заливаю данные в базу из tab-separated текстового файла. Все хорошо, но неясно, как проводить проверку на предмет того, все ли правильно вставилось. То есть может быть испорченное значение в какой-то из колонок файла, и в таблицу в результате пойдет 0 вместо числа. Консоль MySQL при этом говорит что-то вроде blah-blah-blah Warnings:1, а вот как до числа этих предупреждений добраться из PHP?

Описанной в доках функции "mysql_info()" в PHP я не обнаружил, а mysql_error() молчит, даже если при заливке данных были ошибки.

Или надо просто проверять этот файл отдельным скриптом построчно перед заливкой?

P.S. на бесплатных хостингах с MySQL обычно привилегию FILE дают или нет?
Название: LOAD DATA и контроль правильности данных
Отправлено: Tronyx от 15 Сентября 2003, 15:21:38
Цитировать
Xander:
mysql_error() молчит, даже если при заливке данных были ошибки.

Это ещё как? Покажи свой ошибочный запрос.
Название: LOAD DATA и контроль правильности данных
Отправлено: Suckerlove от 15 Сентября 2003, 17:13:13
Яможет быть голупость скажу, но я писал бы для заливки скрипт, который бы по отдельности рассматривал колонки файлов и заливал бы их значение в базу, а для проверки я бы брал mysql_affected_rows();

Может я что-то неправильно понял, но я только хотел помочь....
Название: LOAD DATA и контроль правильности данных
Отправлено: Xander от 15 Сентября 2003, 21:46:18
Suckerlove
Да нет, ты все правильно говоришь. Я наверное так и сделаю.

Единственное соображение contra такое: LOAD DATA INFILE - очень быстрая штука, ну а с какой скоростью пройдут INSERTы числом строк в файле ты и сам понимаешь. Не изячно выходит %)

Tronyx
Ну сам попробуй. Допустим, у тебя есть tab-separated файл, а в нем в одной из строк вместо числа - слово. При заливке такого файла в таблицу соответствующего формата тебе будет выдан warning, а в таблицу пойдет NULL или 0.
Название: LOAD DATA и контроль правильности данных
Отправлено: Suckerlove от 16 Сентября 2003, 01:59:57
Xander
если честно, с функцией LOAD DATA INFILE я не знаком, по этому делал бы все равно инсертами....
Название: LOAD DATA и контроль правильности данных
Отправлено: Alexandr от 16 Сентября 2003, 17:40:15
Цитировать
Xander:
Описанной в доках функции "mysql_info()" в PHP я не обнаружил

А куда делась?
У меня есть...
правда при использовании этой функции иногда пхп вылетал....
Название: LOAD DATA и контроль правильности данных
Отправлено: Xander от 16 Сентября 2003, 20:36:58
а мой завявил, что знать такой не знает.
Название: LOAD DATA и контроль правильности данных
Отправлено: nagash от 17 Сентября 2003, 08:18:07
usage: string mysql_info ( [resource link_identifier ] )
available since: PHP 4 >= 4.3.0

значится у тебя сто пудов не 4.3.*
=)
Название: LOAD DATA и контроль правильности данных
Отправлено: Xander от 17 Сентября 2003, 09:40:28
nagash
спасибо. Как только свежий пхп солью, так и скажу - поолучилось что-нибудь, или нет.