Showing posts with label PHP Serialize. Show all posts
Showing posts with label PHP Serialize. Show all posts

Monday, 13 July 2015

PHP: HOW TO SAVE MULTIPLE INPUT ENTRIES IN ONE COLUMN IN MYSQL USING PHP?

Introduction:
Serialization method – serialize() is to store multiple fields in single column. PHP is able to automatically serialize most of its variables to strings – letting you save them into storage like $_SESSION. However, there are some tweaks you have to know to avoid exploding .php scripts and performance problems.

serialize() converts an array, given as its only parameter, into a normal string that you can save in a file, pass in a URL, etc. Unserialize() is the opposite of serialize() – it takes a serialized string and converts it back to an array.


Example:
On Post request you have received $_POST data for name, mobile, address, email.
<?php 
$data = $_POST; 
$data_serialize = serialize($data); 
?>

Output:
resulting array will bea:4:{s:4:"name";s:3:"abc";s:6:"mobile";s:13:"9874325972398";s:7:"address";s:4:"test";
s:5:"email";s:13:"test@test.com";} use this serialized string to insert into database.

Unserialize value from DB:
$data_unserialize = unserialize($records_serialize);

Friday, 3 October 2014

serialize in PHP

serialize — Generates a storable representation of a value

Syntax: 
string serialize ( mixed $value )

Generates a storable representation of a value.

This is useful for storing or passing PHP values around without losing their type and structure.

To make the serialized string into a PHP value again, use unserialize().
Parameters: 

value

    The value to be serialized. serialize() handles all types, except the resource-type. You can even serialize() arrays that contain references to itself. Circular references inside the array/object you are serializing will also be stored. Any other reference will be lost.

    When serializing objects, PHP will attempt to call the member function __sleep() prior to serialization. This is to allow the object to do any last minute clean-up, etc. prior to being serialized. Likewise, when the object is restored using unserialize() the __wakeup() member function is called.

        Note:

        Object's private members have the class name prepended to the member name; protected members have a '*' prepended to the member name. These prepended values have null bytes on either side.

Return Values:

Returns a string containing a byte-stream representation of value that can be stored anywhere.

Note that this is a binary string which may include null bytes, and needs to be stored and handled as such. For example, serialize() output should generally be stored in a BLOB field in a database, rather than a CHAR or TEXT field.
Examples:

Example #1 serialize() example
<?php
// $session_data contains a multi-dimensional array with session
// information for the current user.  We use serialize() to store
// it in a database at the end of the request.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, $sqldata)) {
        /* Something went wrong.. */
    }
}
?>
Notes:

    Note:

    Note that many built-in PHP objects cannot be serialized. However, those with this ability either implement the Serializable interface or the magic __sleep() and __wakeup() methods. If an internal class does not fulfill any of those requirements, it cannot reliably be serialized.

    There are some historical exceptions to the above rule, where some internal objects could be serialized without implementing the interface or exposing the methods. Notably, the ArrayObject prior to PHP 5.2.0.

Warning

When serialize() serializes objects, the leading slash is not included in the class name of namespaced classes for maximum compatibility.