[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: работа с .dbf файлами
Undertaker
Здравствуйте уважаемые форумчане, столкнулся с проблемой: есть у меня определённые .dbf файлы и надо их через php перегнать в БД.
Пробовал писать так (ну что бы он вывел содержимое .dbf на экран)
  
// Открываем созданный dbf-файл
$dbh = dbase_open("tmp\p6000315.dbf",2);
if(!$dbh) exit("Ошибка - невозможно открыть файл");
// Число записей в файле
$numrecords = dbase_numrecords($dbh);
// В цикле заполняем массив $arr записями из файла
for($i = 0; $i < $numrecords; $i++)
{
$arr[] = dbase_get_record($dbh, $i);
}

echo "<pre>";
echo $arr[1][0];
print_r ($arr);
echo "<pre>";
// Закрываем dbf-файл
dbase_close($dbh);

Всё замечательно выводиться но вот незадача: как это добавить в базу ума не приложу. Может кто то подскажет как разбить файл по одномерным массивам или как положить его в базу



Спустя 23 минуты, 17 секунд (22.03.2012 - 09:53) Visman написал(а):
Так вот тут же
$arr[] = dbase_get_record($dbh, $i);

берется одна строка из файла? Или нет?
Вот ее и добавляй в таблицу свой базы через INSERT каждый раз.

Спустя 37 минут, 37 секунд (22.03.2012 - 10:31) Undertaker написал(а):
Visman
Не могу понять как сделать sql запрос, пытался так
   INSERT INTO baza.table (IND, FKASSA, FNOM_DAY, DAT, FTIME, FOPER, FSTORNO, STATUS, N_OPER, N_CHEQ, SUMMA, SBOR, ITOG, MES_OPL, EXPORTID, EXPORTNAME, PENI, S_OBSGIL, S_KANAL, FIO, SCHET, KOD_OPL, N_TEL, IND_REC, SCH_GAZP, SCH_GAZK, GAZ, S_GKU) VALUES ('$arr[0][0]', '$arr[1][0]', '$arr[2][0]', '$arr[3][0]', '$arr[4][0]', '$arr[5][0]', '$arr[6][0]', '$arr[7][0]', '$arr[8][$i]', '$arr[9][0]', '$arr[10][0]', '$arr[11][0]', '$arr[12][0]', '$arr[13][0]', '$arr[14][0]', '$arr[15][0]', '$arr[16][0]', '$arr[17][0]', '$arr[18][0]', '$arr[19][0]', '$arr[20][0]', '$arr[21][0]', '$arr[22][0]', '$arr[23][0]', '$arr[24][0]', '$arr[25][0]', '$arr[26][0]', '$arr[27][0]')

но он мне array наложил туда

Спустя 6 минут, 30 секунд (22.03.2012 - 10:37) Visman написал(а):
$arr[] = dbase_get_record($dbh, $i);

меняй на
$arr = dbase_get_record($dbh, $i);


И тогда запрос выглядит примерно так
 INSERT INTO `baza`.`table` (IND, FKASSA, FNOM_DAY, DAT, FTIME, FOPER, FSTORNO, STATUS, N_OPER, N_CHEQ, SUMMA, SBOR, ITOG, MES_OPL, EXPORTID, EXPORTNAME, PENI, S_OBSGIL, S_KANAL, FIO, SCHET, KOD_OPL, N_TEL, IND_REC, SCH_GAZP, SCH_GAZK, GAZ, S_GKU) VALUES ('$arr[0]', '$arr[1]', '$arr[2]', '$arr[3]', '$arr[4]', '$arr[5]', '$arr[6]', '$arr[7]', '$arr[8]', '$arr[9]', '$arr[10]', '$arr[11]', '$arr[12]', '$arr[13]', '$arr[14]', '$arr[15]', '$arr[16]', '$arr[17]', '$arr[18]', '$arr[19]', '$arr[20]', '$arr[21]', '$arr[22]', '$arr[23]', '$arr[24]', '$arr[25]', '$arr[26]', '$arr[27]')

З.Ы. Значения для числовых полей не надо в кавычки брать.

Спустя 10 минут, 48 секунд (22.03.2012 - 10:48) Undertaker написал(а):
Visman
Да, заработало, правда в неправильной кодировке ложит но это ничего, в этом разберусь наверное, спасибо огромное...


_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.