0
업데이트 내가이 form.I에서 게시 된 데이터를 사용하여다차원 배열
$arr = array(
'one' => array(
'slidertitle' => 'lorem ipsum',
'sliderlocation' => 'http://localhost/images/1.jpg',
'sliderdescription' => 'this is a good lorem ipsum image',
'sliderposition' => 1
),
'two' => array(
'slidertitle' => 'second slider',
'sliderlocation' => 'http://localhost/images/2.jpg',
'sliderdescription' => 'this space was reserved for a link source code here',
'sliderposition' => 2
),
'three' => array(
'slidertitle' => 'third slider',
'sliderlocation' => 'http://localhost/images/3.jpg',
'sliderdescription' => 'this is a third slider by name only',
'sliderposition' => 3
),
'four' => array(
'slidertitle' => 'fourth slider',
'sliderlocation' => 'http://localhost/images/4.jpg',
'sliderdescription' => 'fourth slider has a description',
'sliderposition' => 4
),
'five' => array(
'slidertitle' => 'fifth slider',
'sliderlocation' => 'http://localhost/images/5.jpg',
'sliderdescription' => 'a slider on rails is really nice',
'sliderposition' => 5
),
'six' => array(
'slidertitle' => 'sixth slider',
'sliderlocation' => 'http://localhost/images/6.jpg',
'sliderdescription' => 'this is the sixth slider,like,really!',
'sliderposition' => 6
)
);
가 그 단지 예부터 $ _POST 데이터로 소독하지 않은 업데이트하려고이 배열이있다.
$clickedButton = $_POST['clickedButton'];
$sliderKey = $_POST['sliderKey'];
$sliderTitle = $_POST['sliderTitle'];
$sliderDescription = $_POST['sliderDescription'];
$sliderLocation = $_POST['sliderLocation'];
$sliderPosition = $_POST['sliderPosition'];
$result = mysql_query("SELECT * FROM arr");
$row = mysql_fetch_array($result);
$data = $row['encoded_array'];
//echo $data.'<br/>'.'<br/>';
$unserialized = unserialize($data);
$unserialized[$sliderKey]["slidertitle"] = $sliderTitle;
$unserialized[$sliderKey]["sliderlocation"] = $sliderLocation;
$unserialized[$sliderKey]["sliderdescription"] = $sliderDescription;
$unserialized[$sliderKey]["sliderposition"] = $sliderPosition;
//print_r($unserialized);
$newSerialize = serialize($unserialized);
mysql_query("UPDATE arr SET encoded_array = '$newSerialize'");
내가 print_r $unserialized
, 난 그냥 게시 한 데이터가 있지만, 내가 잘못하고 있어요 뭔가가 serialize.Is 후 데이터베이스에 커밋되지?
편집 :
내 배열에 두 개의 레코드를 가지고이
a:2:{s:13:"5056d218631bc";a:4:{s:11:"slidertitle";s:5:"lorem";s:14:"sliderlocation";s:5:"ipsum";s:17:"sliderdescription";s:11:"hello world";s:14:"sliderposition";i:3;}s:13:"5056db269305c";a:4:{s:11:"slidertitle";s:1:"A";s:14:"sliderlocation";s:6:"RECORD";s:17:"sliderdescription";s:18:"WITH A DESCRIPTION";s:14:"sliderposition";s:1:"2";}}
직렬화를 저장하기 전에 내가 무엇을 얻을 수 있습니다 :
Array
(
[5056d218631bc] => Array
(
[slidertitle] => lorem
[sliderlocation] => ipsum
[sliderdescription] => hello world
[sliderposition] => 3
)
[5056db269305c] => Array
(
[slidertitle] => A
[sliderlocation] => RECORD
[sliderdescription] => WITH A DESCRIPTION
[sliderposition] => 2
)
)
DB 삽입 전에'var_dump ($ newSerialize);'를하면 어떻게 될까요? – JamesHalsall
내가 게시 한 데이터가 있습니다. – Gandalf
'mysql_ *'함수를 사용하지 마십시오. 사용되지 않습니다 ([* red box *] (http://php.net/manual/en/function.mysql-query.php) 참조). SQL injection에 취약합니다. . [* PDO *] (http://php.net/manual/en/book.pdo.php) 또는 [* MySQLi *] (http://php.net/manual/en/book.mysqli.php) . – alfasin