За последние 24 часа нас посетили 17743 программиста и 1621 робот. Сейчас ищет 1031 программист ...

Занесение файлов в MSSQL в поле типа image

Тема в разделе "PHP и базы данных", создана пользователем DUCK, 28 фев 2008.

  1. DUCK

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

    С нами с:
    9 окт 2006
    Сообщения:
    55
    Симпатии:
    0
    Сразу скажу что новую тему создал потому, что ранее обсуждаемые темы мне не помогли.
    Теперь о проблеме. Имеется код:
    <?php
    include ('inc\funcs.php');
    $conn = DBConnect('metod');
    $fd = fopen ($userfile, "rb");
    $contents = fread ($fd, filesize ($userfile));
    fclose ($fd);
    $upload = addslashes(htmlspecialchars($contents));
    $query1 = "INSERT INTO primer (dat) VALUES (\"".$upload."\")";
    $q1 = mssql_query($query1);
    if ($q1==0){
    echo "Проверьте правильность входящих данных!";
    }
    mssql_close($conn);
    unlink($userfile);
    ?>
    При его выполнении следующая ошибка:
    Warning: MS SQL message: Operand type clash: text is incompatible with image (severity 16) in e:\www...

    Немного ранее была тема, там приводился следующий код:
    1. /**************************
    2. / Add file to Data Base
    3. /**************************
    4.
    5. /* read file */
    6. $fp=fopen($root.$file_name, "r");
    7. $file_data=fread($fp,filesize($root.$file_name));
    8. fclose($fp);
    9.
    10.
    11. /* load file data to db */
    12. mysql_pconnect($hostname,$username,$password) or die ("Could not connect: " . mysql_error());
    13. mysql_select_db("$dbName") or die ("Database not found!");
    14.
    15. $query = "INSERT INTO images ( image_id, image_data ) VALUES ('NULL', '".addslashes($file_data)."' )";
    16.
    17. $result = mysql_query($query) or die (mysql_error());
    18. $num_results = mysql_affected_rows();
    19.
    20. if(empty($num_results)){
    21. $_log = 'ERROR: Some shit happened!';
    22. exit;
    23. } else {
    24. $_log = 'SUCCESS: File added to database!';
    25. unlink($root.$file_name); // kill file from server
    26. }

    Этот код когда под MSSQL подпроавил выдавал ошибку: Warning: MS SQL message: Line 1: Incorrect syntax near 'П'. (severity 15) in e:\www... (при просмотре загружамого файла через блокнот оказывается что SQL не принимает кавычки, хотя функция addslashes была также задействована).

    Подскажите решение проблемы.

    Сразу говорю что надо хранить файлы именно в таблице, и не надо советовать чтобы я хранил их на диске, а в таблице только ссылки на файлы.
     
  2. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Сорок семь сообщений ведь уже написал на форуме, а код форматировать так и не научился.
    А если головой подумать? Если у тебя картинка, какие нахрен addslashes и htmlspecialchars ? Это же бинарный файл!
     
  3. alex_lebedev

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

    С нами с:
    6 май 2008
    Сообщения:
    6
    Симпатии:
    0
    Вообще очень в тему.
    Недавно путался с полем типа text, так вот там нужно!