2016-05-16 11 views
-1

Ich muss in einem meiner Tabellen Felder als ein Array einfügen. So definiert ich eine Funktion die Eingabe in Array wie folgt zu konvertieren:Einfügen eines Arrays in die Datenbank mit PDO bindValue

function ConvertToArray($input){ 
    if(is_array($input)) // for input array type 
     return $input ; 
    else if(!isset($input) || $input == 'undefined' || ($input == "" && $input !==0) || $input == '""' || $input == "''"){ // for empty input 
     $arr = array(); 
     return $arr ; 
    } 
    else{ // for string input 
     $newarr = array(); 
     array_push($newarr, $input); 
     return $newarr ; 
    } 
} 

dann will ich es mit PDO in der Datenbank einzufügen, aber wenn der Wert Bindung habe ich eine Fehlermeldung,:

Array bespannen Konvertierungsfehler ist

dies mein Code:

$usageType = $this -> ConvertToArray($values['UsageType']); 
$prepared->bindValue(':UsageType', $usageType); // here is the error 

irgendeine Idee, wie ich mein Problem lösen kann? Vielen Dank!

+1

warum Sie nicht den Wert serialisiert und legen Sie es –

+1

Und wie genau willst du ein Array speichern, um Datenbankfeld? Sie müssen es serialisieren, in JSON konvertieren oder ein beliebiges anderes String-Format. – TheDrot

+0

Dank @NirojAdhikary für Ihre schnelle Antwort, ich hatte keine Ahnung über das Speichern von Array in DB, Serialisierung löste mein Problem. – user2685815

Antwort

0

Um das Array in der Datenbank zu speichern, verwenden Sie entweder serialize() oder konvertieren Sie es nach Ihren Wünschen in json.

$prepared->bindValue(':UsageType', serialize($usageType)); 
+0

danke, gelöst ... – user2685815