2014-09-19 126 views
0

我想将一个数组($array)插入Mysql表(notification),我试过但没有输入。我该如何解决这个问题?如何将数组插入到Mysql表中

$select = "SELECT * FROM addclique WHERE adder_id = :session_id"; 
$param1 = array ('session_id' => $_SESSION['id']); 
$cliques = $db->query($select, $param1); 

foreach($cliques as $key) 
{ 
     $array[] = $key['clique_id'];   
} 
$array[] = $key['clique_id']; 
$notijfy = new Notification(); 
$notijfy->addCircle($array); 

function addCircle($id_involve){ 
    $escaped_values = array_map('mysql_real_escape_string', array_values($array)); 

    $sql2 = "INSERT INTO notification(id_involve) VALUES (:id_involve)"; 
    $param2 = array ('id_involve' => implode(", ", $escaped_values)); 
    $result2 = $this->db->query ($sql2, $param2); 
} 
+0

的http:// stackoverfl ow.com/questions/13507496/pdo-php-insert-into-db-from-an-associative-array – 2014-09-19 23:28:56

回答

0

有几种方法。 我只想做一些简单的像这样:

foreach($cliques as $key){ 

     $array[] = $key['clique_id']; 

} 

$notijfy = new Notification();  
$notijfy->addCircle($array);  
function addCircle($array){ 
$insert_string = ''; 

$count = 0; 
foreach ($array as $k => $v){ 

$count++; 


${$k} = mysqli_real_escape_string($this->db, $v); 

$insert_string .= "(" . ${$k} . ")"; 

if ($count < sizeof($array)){ 

$insert_string .= ","; 

} 

     } 
$sql2 = "INSERT INTO notification(id_involve) VALUES $insert_string;"; 

$result2= $this->db->query ($sql2, $param2); 

} 

你的主要错误是,你试图通过($调用函数时传递一个阵列,但在函数本身的参数被列为$ id_involve,当你显然需要一个你在函数本身中使用的$ array变量的时候,我也不明白你为什么要在一开始就在foreach循环之外添加一个元素到$ array变量中。 。

而不是$this->db只需使用你的连接变量

+0

不要忘记在发布之前先格式化你的代码':-)' – halfer 2014-09-19 23:52:13