2016-12-07 2 views
0

Я работаю над проектом, который обрабатывает текстовые файлы, которые должны храниться в базе данных.Как получить данные двоичного файла как преобразованный символ в mysql?

Так что я использую тип данных blob, который преобразует файлы в двоичные файлы и затем загружает их в MySQL.

Моя проблема заключается в том, как преобразовать весь двоичный текст в char при его получении? Я попробовал команду php ниже, но, похоже, не работает. Пожалуйста помоги.

SELECT cast(blob-col_name as char(1000000)) from `table_name` 

The output retrieves garbage text as shown in the image below.

+1

Возможный дубликат [Как конвертировать из BLOB в текст в MySQL?] (HTTP: //stackoverflow.com/questions/948174/how-do-i-convert-from-blob-to-text-in-mysql) – Nytrix

+0

, если это только текстовые файлы, вы должны вместо этого использовать поле TEXT. –

+0

@FranzGleichman Опция поля TEXT работает хорошо, но я должен загружать документы в базу данных как часть требований, которые не идут с этой опцией. – Mariam

ответ

0

Попробуйте это:

SELECT CAST(blob-col_name AS CHAR(1000000) CHARACTER SET utf8) As BLOBText FROM table_name; 

UPDATE

$sql = "SELECT Legislation_ID, Legislation_Name, Category, 
     CAST(data AS CHAR(1000000) CHARACTER SET utf8) As BLOBText FROM legislations"; 
$query = mysqli_query($sql); 

while($rows = mysqli_fetch_array($query)) { 
    file_put_contents($rows["Legislation_Name"].".zip", $rows["BLOBText"]); 
    echo "<textarea style='height:500px;width:300px'>".$rows["BLOBText"]."</textarea><br/>"; 

} 
+0

Пробовал, но не работал. Он ничего не получает. – Mariam

+0

Как вы возвращаете данные? какой код вы используете с PHP? –

+0

$ sql = "SELECT' Legislation_ID', 'Legislation_Name',' Category', CAST ('data' AS CHAR (1000000) CHARACTER SET utf8) В качестве BLOBText FROM' законодательства'; – Mariam

Смежные вопросы