我是 PHP 新手并使用序列化数据,
我有一个数据库,它有 2 个表,用户和字符。characterId 与 userId 有关系。
一个用户有 2 个字符,所以我想使用以下代码获取数据:
public static function getCharacter() {
$mysqli = Controller_Core_Config::getDB();
if ($mysqli != null) {
$user = unserialize($_SESSION['user']);
$sql = "SELECT * FROM `character` WHERE `userId`='" . $user->getId() . "'";
$result = $mysqli -> query($sql);
if ($result !== FALSE && $result -> num_rows > 0) {
$row = $result -> fetch_assoc();
$_SESSION["character"] = serialize(new Model_Game_User(
$row['characterId'],
$row['characterName'],
$row['userId'],
$row['level']
));
} else {
echo "You have no characters.";
}
}
}
如果我想显示数据,我使用以下代码:
//some code
$character = unserialize($_SESSION["character"]);
$output .= $character->getCharacterName() . "<br>";
//some code
我的问题是,当我 var_dump ($_SESSION["character"]) 时,我只得到 1 个字符:
string(202) "O:15:"Model_Game_User":4:{s:28:"Model_Game_UsercharacterId";s:1:"3";s:30:"Model_Game_UsercharacterName";s:9:"adminious";s: 23:"Model_Game_UseruserId";s:1:"2";s:22:"Model_Game_Userlevel";s:1:"3";}"
我的问题是,序列化数据中是否可以有多个“字符”?