このエラーが発生していますか?どういう意味ですか?unserialize():オフセット9の13バイトのエラー
unserialize(): Error at offset 9 of 13 bytes
これは私がシリアライズし、データベースに配列を格納した後に得るものです:
a:3:{i:0;s:6:
そしてアンシリアライズ時の
が、それはエラーになります!私は何をすべきか? 元のアレイを元に戻して表示したい。私は
Create1.php(隠された入力による次のページへのシリアライズされた配列を渡す)
<form action="create2.php" method="POST">
<table cellpadding="10">
<tr>
<td>Name</td>
<td><input type="text" name="name" value="<?php echo $name; ?>" readonly="readonly" ></td>
</tr>
<tr>
<td>Mobile</td>
<td><input type="text" name="mobile" value="<?php echo $mobile; ?>" readonly="readonly" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" value="<?php echo $email; ?>" readonly="readonly" /></td>
</tr>
<tr>
<td>Company</td>
<td><input type="text" name="company" value="<?php echo $company; ?>" readonly="readonly" /></td>
</tr>
<tr>
<input type="hidden" name="original_list" value="<?php echo serialize($original_list); ?>" />
<input type="hidden" name="xerox_list" value="<?php echo serialize($xerox_list); ?>" />
</tr>
<tr>
<td><input type="submit" value="Confirm" /></td>
</tr>
</table>
</form>
Create2.php .. basencoder /デコードのように、他のポストを試してみましたが、あまりにも動作していないthatsの(データベース内でシリアル化された配列を取得し、保存する)
$name = $_POST['name'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$company = $_POST['company'];
$original = $_POST['original_list'];
$xerox = $_POST['xerox_list'];
echo $sql = "INSERT INTO users (name,mobile,email,company,original,xerox)
VALUES ('$name','$mobile','$email','$company','$original','$xerox')";
mysqli_query($con,$sql);
有効なシリアル化された文字列ではありません。切り詰められています。 – apokryfos
データベース列に長さ制限がありますか? –
また、[documentation](http://php.net/manual/en/function.serialize.php)に以下のように書かれています:*これはバイナリ文字列であり、ヌルバイトを含む可能性があります。そのように扱われる。たとえば、serialize()の出力は、通常、CHARまたはTEXTフィールドではなく、データベースのBLOBフィールドに格納されます。* – apokryfos