2011-02-11 5 views
0

데이터베이스 테이블의 데이터를 직렬화 해제 할 때 문제가 있습니다. 데이터를 직렬화하고 테이블에 저장합니다. 데이터를 가져올 때 제대로 가져올 수 없습니다. 아래는 제 코드입니다.문제를 직렬화하지 마십시오.

$miscel = serialize(array($_POST['Prod_Price'],$_POST['Prod_Cond'])); 

성공적으로 데이터를 데이터베이스에 삽입했습니다. 데이터베이스 테이블에서 그것은 같습니다

s:38:"a:2:{i:0;s:4:"4444";i:1;s:6:"Middle";} 

어떻게 데이터를 올바르게 검색 할 수 있습니까?

+0

문제는 무엇인가, 더 구체적를 unserialize하는? 당신은 당신의 끈을 열어 보지 않았습니까? – alexn

+0

나는 데이터를 직렬화하고 mysql 테이블에 넣는다. 하지만 어떻게 검색 해야할지 모르겠다. 나는 비 직렬화를 시도했지만 작동하지 않습니다. – Arung

+0

데이터베이스에서 데이터를 검색하는 방법에 대해 이야기하고 있습니까? –

답변

3

정확히 무엇이 문제입니까? 당신은 배열을 저장 을 고려해야 할 문제가 연재되는 데이터를 매우 읽을 수없는 사실 내에있는 경우

// assuming your database column 'foo' contains 
// s:38:"a:2:{i:0;s:4:"4444";i:1;s:6:"Middle";} 
$miscel = unserialize($row['foo']); 
print_r($miscel);  
// returns array([0] => 4444, [1] => 'Middle'); 

: 당신은 단순히 원래의 형태에서 데이터를 검색 할 수 unserialize()를 호출 할 수 있어야한다 키뿐만 아니라 :

$miscel = serialize(array('price' => $_POST['Prod_Price'], 'cond' => $_POST['Prod_Cond'])); 
+0

나는 똑같은 것을했다. "s : 49 :"a : 2 : {s : 5 : "Price"; s : 3 : 467; s : 4 : "Cond"; s : 3 : "Old"; } "; '위의 형식으로 저장된 데이터. '$ vets = unserialize ($ list1-> meta_value); $ output. = $ vets [ 'Price'];'이 포맷을 사용하여 데이터를 얻었습니다.하지만 가격 값을 반환하지 않습니다 .. – Arung

0

당신은 unserialize FUNC를 사용할 필요가 . 그러면 모든 배열이 배열로 반환됩니다.

+0

이미 unserialize를 시도했지만 아무 일도 없었습니다! – Arung

+0

해결되었습니다. 데이터베이스에 삽입하기 전에 strip_tags를 사용해야합니다! – Arung

+0

@Mayilarun : HTML/XML에는 시나리오와 관련이 없으므로 가능성이 없습니다. 어쩌면 직렬화 된 입력을 위생 처리하기 위해서'mysql_escape_string'을해야 할 것입니다. –

0
$records = array(
      'name'=>'abc', 
      'mobile'=>'1234566789', 
      'address'=>'test', 
      'email'=>'[email protected]'); 
$records_serialize = serialize($records); 

echo "serialize<br/>"; 
print_r($records_serialize); 

echo "<br/><br/>unserialize<br/>"; 
$records_unserialize = unserialize($records_serialize); 
print_r($records_unserialize); 
여기

코드는 직렬화를 사용하고

출력

serialize 
a:4:{s:4:"name";s:3:"abc";s:6:"mobile";s:13:"1234566789";s:7:"address";s:4:"test";s:5:"email";s:13:"[email protected]";} 

unserialize 
Array ([name] => abc [mobile] => 1234566789[address] => test [email] => [email protected]) 
관련 문제