使用PDO bindValue将数组插入数据库

时间:2016-05-16 05:27:55

标签: php mysql arrays 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 个答案:

答案 0 :(得分:0)

要在数据库中存储数组,请使用serialize()或根据您的方便将其转换为json。

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