2014-09-19 3 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 –

답변

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

관련 문제