2016-05-16 88 views
-1

我需要将其中一个表格字段作为数组插入。所以我定义的函数的输入转换成数组是这样的:使用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

为什么不序列化值并插入它 –

+1

你到底要如何将数组存储到数据库字段?你必须序列化它,转换成JSON或你喜欢的任何字符串格式。 – TheDrot

+0

感谢@NirojAdhikary为您的快速响应,我没有任何关于将数组存储在数据库中的想法,序列化解决了我的问题。 – user2685815

回答

0

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

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

谢谢,解决了... – user2685815