2016-09-12 2 views
0

Ich habe eine Datenbank mit einer Daten (. Bin/Blob-Datei) darin gespeichert. Ich verwende den folgenden Code, um die Daten aus der .bin-Datei zur Ausgabe:Ich möchte eine ganze Blob (.bin) -Datei von der Datenbank in ein Array speichern

function connect_db() { 
    $server = '****'; 
    $user = '****'; 
    $pw = '****'; 
    $db = '****'; 
    $connect = mysqli_connect($server,$user,$pw,$db); 
    if(!$connect) { 
     die('Connection error: '.mysqli_connect_error()); 
    } 
    return $connect; 
} 

function get_blob() { 
    $connect = connect_db(); 
    $query = 'SELECT blob FROM my_table'; 
    $result = mysqli_query($connect, $query); 
    while($data = mysqli_fetch_assoc($result)) { 
     header('Content-type: text/plain'); 
     $blob[]=$data; 
    } 
    return $blob; 
} 

echo '<pre>'; 
print_r(get_blob()); 
echo '</pre>'; 

Das gibt mir die folgende Ausgabe (dies ist eine der viele Werte im Array, die ich aus der Datenbank zurück):

[24] => Array 
    (
     [data] => a:1:{s:7:"context";a:5:{s:11:"product_ids";s:6:"entity";s:19:"add_to_cart_combine";i:1;s:30:"show_single_product_attributes";i:1;s:12:"display_path";s:8:"node/171";s:6:"entity";a:3:{s:11:"entity_type";s:4:"node";s:9:"entity_id";s:3:"171";s:28:"product_reference_field_name";s:14:"field_products";}}} 

Ich war auf der Suche nach einem Bild, aber es scheint, dass dieser Blob nicht einen enthält. Allerdings möchte ich immer noch alle diese Daten korrekt in einem Array speichern (wahrscheinlich multidimensional). Ich plante, explodieren zu lassen, aber das scheint ein bisschen weit hergeholt. Gibt es eine Möglichkeit für mich, saubere Daten zu erhalten, ohne explodieren zu müssen?

+0

Von den Blicken von ihm, der Inhalt des Blobs bereits eine Reihe zu sein scheint, haben Sie versucht, es als solches zu retten? – Nagarz

+0

So viel mehr scheint wie serialed dingy. Versucht 'unserialize()'? –

+0

Ich habe versucht unserialize. Das gibt mir nur ein riesiges leeres Array zurück (3000+ Schlüssel). Ich werde sehen, ob ich es als ein Array speichern kann, wie es ist, aber schließlich muss jeder andere Wert in dem Blob ein anderes Element sein, da ich es in eine XML-Datei analysieren muss. –

Antwort

0

Die Daten werden JSON codiert

ersetzen

$blob[]= $data; 

mit

$blob[]= json_decode($data); 

Oder vielleicht (es ist nicht ganz klar aus Ihrem Post)

$blob[]= json_decode($data['data']); 

oder

$blob[]= json_decode($data['blob']); 

Siehe http://php.net/manual/en/function.json-decode.php

+0

Ich verwendete unserialize, und ich bekomme jetzt eine saubere print_r. Das Problem ist jetzt, dass diese .bin-Datei kein Bild enthält, also muss ich Tausende von bin-Dateien durchsehen, um hoffentlich den richtigen Pfad zum Server zu finden. Danke für die Antwort trotzdem! –

Verwandte Themen