Вставить массив в базу данных с помощью 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 ;
}
}

Затем я хочу вставить его в базу данных с PDO, но при привязке значения у меня появляется ошибка:

Ошибка преобразования массива в строку

это мой код:

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

Любая идея, как решить мою проблему? Спасибо!

-1

Решение

Чтобы сохранить массив в базе данных, используйте serialize () или конвертируйте его в json согласно вашему удобству.

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

Другие решения

Других решений пока нет …