2013-03-14 2 views
3

mysql 데이터베이스에 삽입하고자하는 배열이 다음과 같습니다.mysql 데이터베이스에 배열을 삽입하십시오.

  • 아이템 [0] = 축구
  • 아이템 [1] = 럭비
  • 항목 [2] = 축구
  • 항목 [3] = 넷볼
  • 항목 [4] = 하키
  • //Capture items 
        function item($register_data) 
        { 
         array_walk($register_data,'array_clean'); 
    
         $fields = ' '.implode(',',array_keys($register_data)).' '; 
         $data = '\''.implode('\',\'',$register_data).'\''; 
    
         //Insert user Data into the database 
         $query = "INSERT INTO items ($fields) VALUES ($data)"; 
         mysql_query($query); 
        } 
    
    0 : 나는 functions.php에있는 데이터베이스에 삽입 할 다음과 같은 기능을 사용하고

for($i =0;$i<4;$i++) 
       { 
        $item = array($i = item[i]);   
       } 


//Call the function to insert into the database 
item($item); 

이 방법은 작동하지 않습니다

지금이 내가 삽입하는 방법입니다. 제발 도와주세요

+2

그리고 무엇이 오류입니까? –

+1

1) mysql_error()를 사용하여 잘못 된 것에 대한 힌트를 얻으십시오. 2) mysql_x 함수는 더 이상 사용되지 않으므로 mysqli 또는 PDO로 전환하십시오. – Sirko

+1

어떻게 작동하지 않습니까? 또한, mysql_ *은 더 이상 사용되지 않습니다 ... PDO 나 MySQLi를 확인하십시오. – brbcoding

답변

1

PHP는 serialize 된 & 역 직렬화 기능 (http://php.net/manual/en/function.serialize.php)을 가지고 있습니다. 모든 객체 나 배열을 전달할 수 있으며 직렬화 된 문자열을 반환합니다.이 문자열은 데이터베이스의 단일 필드에 저장할 수 있습니다.

+0

정말 입력 데이터를 직렬화하고 싶지 않습니다. 개별적으로 삽입하고 싶습니다. One after Another – user1783675

1

항목 테이블에 두 개의 열이 있으므로 id (자동 증가) 중 하나를 건너 뛰고 두 번째 열 ItemName 만 지정하면됩니다. 이것은 this page의 mysql 문서에 설명되어있다.

INSERT INTO items (ItemName) VALUES ('Soccer'), ('Rugby'), ('Football'), ('Netball'), ('Hockey'); 

이 코드는 다음과 같이 보일 것입니다 : 당신은 쿼리가이 라인을 따라 뭔가를보고 싶을 것이다

$sports[0] = "Soccer"; 
$sports[1] = "Rugby"; 
$sports[2] = "Football"; 
$sports[3] = "Netball"; 
$sports[4] = "Hockey"; 

:

는이 표에 5 개 스포츠를 삽입 할 말 있습니다 :

function insert($insert_data) 
{ 
    $fields = implode(', ', $insert_data); 
    $data = '(\''.implode('\'), (\'', $insert_data).'\')'; 

    //mysql_query("INSERT INTO items (ItemName) VALUES $data;"); 
    echo "INSERT INTO items (ItemName) VALUES $data;"; 
} 

$sports = array(); 
$sports[0] = "Soccer"; 
$sports[1] = "Rugby"; 
$sports[2] = "Football"; 
$sports[3] = "Netball"; 
$sports[4] = "Hockey"; 

insert($sports); 

문자열을 먼저 입력하고 sanitize을보고 싶을 수도 있습니다. mysql이 꽤 오래된 것부터입니다.

+0

좋은 예. 내가 이것을 시도하자. – user1783675

+0

$ sports 배열을위한 필드의 정적 번호가 없다면? – user1783675

+0

@ user1783675 스포츠 배열에 5 개 이상의 스포츠가 있다면? 삽입 함수는 배열이 1보다 큰 경우 스포츠가 얼마나 많은지에 따라 쿼리를 생성합니다. –

관련 문제