Вкарване в БД от .txt файл

bganonymous

Registered
Здравейте! Имам таблица `contacts`
с три полета в нея - "id" и "phone".

Имам и един .txt файл в който има 100 телефонни номера, като всеки номер е на нов ред.

Мога ли по някакъв начин (чрез този .txt файл), да се вкарат всички телефонни номера в базата данни `contacts`? Дано сте ме разбрали. Благодаря предварително! :)
 
http://stackoverflow.com/questions/13246597/how-to-read-a-file-line-by-line-in-php

PHP:
// някаква бд конекция
$handle= fopen('r', 'ИМЕТО_НА_TXT_ФАЙЛА.txt');

while (($phone_number = fgets($handle)) !== false) {
    // insert-ваш в contacts $phone_number
    // insert into contacts set phone=$phone_number
}

+ Можеш да подготвиш една заявка преди цикъла и вътре в него само да изпълняваш, нещо такова:

PHP:
$handle= fopen('r', 'ИМЕТО_НА_TXT_ФАЙЛА.txt');
$stmt = $mysqli->prepare('INSERT INTO contacts SET phone=?');
$stmt->bind_param('s', $phone_number);
while (($phone_number = fgets($handle)) !== false)
    $stmt->execute();
По този начин не се налага всеки път да подаваш $phone_number, защото си указал предварително, че искаш оттам да взимаш стойността.
 
bganonymous каза:
А това как става с MySQL, а не с MySQLi?

Вече показах как:

PHP:
// някаква бд конекция
$handle= fopen('r', 'ИМЕТО_НА_TXT_ФАЙЛА.txt');

while (($phone_number = fgets($handle)) !== false) {
    // insert-ваш в contacts $phone_number
    // insert into contacts set phone=$phone_number
}
 
Warning: fopen(r) [function.fopen]: failed to open stream: Success in...

Warning: fgets() expects parameter 1 to be resource, boolean given in...
 
bganonymous каза:
Warning: fopen(r) [function.fopen]: failed to open stream: Success in...

Warning: fgets() expects parameter 1 to be resource, boolean given in...
Защото файлът не съществува или нямаш права за четене. Провери пак дали си написал правилно името на файла в кода.

Едит: Не, не, не! Грешка! Първо е името на файла и после начинът на отваряне: :D

PHP:
$handle= fopen('ИМЕТО_НА_TXT_ФАЙЛА.txt', 'r');
Извинявай за недоглеждането :)
 
anonimen каза:
bganonymous каза:
Warning: fopen(r) [function.fopen]: failed to open stream: Success in...

Warning: fgets() expects parameter 1 to be resource, boolean given in...
Защото файлът не съществува или нямаш права за четене. Провери пак дали си написал правилно името на файла в кода.

Едит: Не, не, не! Грешка! Първо е името на файла и после начинът на отваряне: :D

PHP:
$handle= fopen('ИМЕТО_НА_TXT_ФАЙЛА.txt', 'r');
Извинявай за недоглеждането :)
На 100% съм сигурен че съществува! :(
 
bganonymous каза:
Златен си! :D
Надявам се все пак вместо само да копираш кода да разбереш какво правя, за да знаеш следващия път какво да правиш:
1. първо "отваряме" файла с fopen() и казваме, че искаме само да четем - 'r' (от read)
2. после с функцията fgets() взимаме следващия ред от файла и проверяваме дали наистина съществува такъв - !== false
3. правиш insert с взетия ред от файла.

За обработка на файлове има не един начин, можеш да започнеш с документацията на fopen() и оттам нататък има много други полезни функции :?:
 

Back
Горе