2011-12-23 3 views
12

mysql 데이터베이스에 데이터를 저장하고 있습니다. 이 데이터는 배열이고 내용은 내 시스템에 로그인 한 현재 사용자의 다른 데이터입니다. 데이터베이스에서 검색시 일련화된 배열이 깨집니다.

$data = addslashes(serialize($array)); 

다음

"UPDATE or INSERT INTO TABLE SET ... data = '$data';" 

지금, 데이터가 내 PHP 코드 유효 삽입 또는 업데이트 문 반환 이후 제대로 저장됩니다 : 나는 데이터베이스에 저장할 때

나는이 작업을 수행.

제 문제는 직렬화를 해제하려고하면 false를 반환하고 내 페이지에 알림이 표시됩니다.

내가 뭘 잘못하고 있니?

+0

데이터를 직렬화 해제하고 사용중인 오류를 게시 할 수 있습니까? – Nonym

+0

통지 내용은 무엇을 말합니까? –

답변

23

나는 당신의 mysql 데이터베이스에있는 필드가 모든 문자를 저장할 정도로 크지 않을 것입니다. 그래서 직렬화를 취소하면 알림을 받고 아무것도 반환하지 않습니다.

ALTER TABLE your_table MODIFY COLUMN column_name MEDIUMTEXT /* other properties*/; 

을 저장하고 데이터를 다시 읽으려고 :

은 다음과 같이 또는 LONGBLOB 또는 LONGTEXTMEDIUMBLOB 또는 MEDIUMTEXT (16,777,215의 최대 길이) (4,294,967,295의 최대 길이)에 필드를 증가하려고합니다.

데이터가 4,294,967,295 (LONGBLOB 또는 LONGTEXT) 이상인 경우 저장하는 데이터의 유형을 확인하고 원치 않는 데이터를 필터링하거나 제거해야합니다.

0

테이블에서 데이터를 가져온 후 unserialize 기능을 사용하기 전에 슬래시를 제거 하시겠습니까?

addslashes()없이 삽입하고 배열로 가져 오기 전에 슬래시를 추가하십시오.

관련 문제