How to Store Array Data To Database to a Single Column Without serialize() & json_encode() Function


If you don't want to use serialize() or json_encode() to store the $insData array data to a single column (Key Value Pair) in a MySQL database, you can use a custom delimiter to separate the values and then store the concatenated string in a single column. Here's an example:

// Step 1: Connect to the MySQL database

$servername = "localhost";

$username = "your-username";

$password = "your-password";

$dbname = "your-database";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {

    die("Connection failed: " . mysqli_connect_error());

}


// Step 2: Define the name of the table where you want to store the data

$table_name = "mytable";


// Step 3: Define the delimiter to use

$delimiter = "|"; // Choose any delimiter that won't appear in your data


// Step 4: Concatenate the array values using the delimiter

$data = $insData['uid'] . $delimiter . $insData['first_name'] . $delimiter . $insData['last_name'];


// Step 5: Build the SQL query to insert the data into the table

$query = "INSERT INTO $table_name (mycolumn) VALUES ('$data')";


// Step 6: Execute the query

if (mysqli_query($c, $query)) {

    echo "Data inserted successfully!";

} else {

    echo "Error inserting data: " . mysqli_error($conn);

}


// Step 7: Close the database connection

mysqli_close($conn);

Note that the $delimiter variable is used to separate the array values, and the resulting string is stored in the $data variable. The SQL query uses single quotes to enclose the $data variable, and the resulting string will be stored in a single column in the database.

When retrieving the data from the database, you can use the explode() function to split the concatenated string back into an array:

// Step 1: Connect to the MySQL database

$servername = "localhost";

$username = "your-username";

$password = "your-password";

$dbname = "your-database";

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {

    die("Connection failed: " . mysqli_connect_error());

}

// Step 2: Define the name of the table where the data is stored

$table_name = "mytable";

// Step 3: Build the SQL query to retrieve the data from the table

$query = "SELECT mycolumn FROM $table_name";

// Step 4: Execute the query

$result = mysqli_query($conn, $query);

// Step 5: Fetch the result as an array

$row = mysqli_fetch_assoc($result);

// Step 6: Split the concatenated string into an array using the delimiter

$data = explode($delimiter, $row['mycolumn']);

// Step 7: Use the data as needed

echo "User ID: " . $data[0];

echo "First Name: " . $data[1];

echo "Last Name: " . $data[2];

// Step 8: Close the result and the database connection

mysqli_free_result($result);

mysqli_close($conn);

Note that the explode() function is used to split the concatenated string retrieved from the database back into an array, using the same delimiter used to concatenate the values. The resulting array can then be used to access the individual values as needed.

       

Advertisements

ads