За последние 24 часа нас посетили 18525 программистов и 1712 роботов. Сейчас ищут 843 программиста ...

Чтение бинарного файла и сохранение в БД

Тема в разделе "PHP и базы данных", создана пользователем Дастин, 29 июн 2011.

  1. Дастин

    Дастин Активный пользователь

    С нами с:
    29 июн 2011
    Сообщения:
    2
    Симпатии:
    0
    Есть бинарный файл, в нем есть 989 блоков по 940 байт.
    Нужно считывать блоки из файла и записывать в БД каждый блок в отдельную строку.
    В таблице 2 поля в строке, номер строки number тип INT и поле binary1 тип BLOB.
    Делаю так:
    [sql]$open = mysql_connect($hostname, $username, $password) or die ("mysql_connect error");
    mysql_select_db($database_name) or die (mysql_error());
    $fp = fopen('file.bin', 'rb');
    for ($number=1; $number <= 989; ++$number)
    {
    $binary1 = fread($fp, 940);
    $msql = "UPDATE $database_name.$table_name SET binary1 = '$binary1' WHERE (number ='$number')";
    mysql_query($msql);
    }
    fclose($fp);
    mysql_close($open);[/sql]

    В БД записывается строк 10, потом начинаются пропуски, т.е. некоторые блоки просто не записываются. Если в цикле пишу
    [sql]echo $binary1;[/sql]
    то все блоки отображаются, в том числе и те, которые не пишутся в БД.
    Подскажите в чем может быть дело и в какую сторону копать или какой мануал курить.
    За ранее спасибо.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    наверное эскейпить надо.

    $msql = "UPDATE $database_name.$table_name SET binary1 = '".mysql_real_escape_string($binary1)."' WHERE (number ='$number')";
     
  3. Дастин

    Дастин Активный пользователь

    С нами с:
    29 июн 2011
    Сообщения:
    2
    Симпатии:
    0
    tommyangelo, никий Вам поклон.
    Все работает.