In response to an API call, I'm getting a full HTML script. Full means it includes HTML CSS and Javascript. Now I have that HTML as string in PHP variable.
$content = '<html>
<head>
<script>--Some javascript and libraries included--</script>
<title></title>
</head>
<body>
<style>--Some Styling--</style>
</body>
</html>';
Now, what is the best way to save this variable in Database and How?
- As a string with VARCHAR or TEXT type?
- As a string with Base64 Encoded with VARCHAR or TEXT type?
- As a Binary with BLOB type?
Or any other you would like to suggest(May be Serialize or Pack)?
you can use base64_encode and store that string into db with text/blob type of field
If you base64 encode it you increase the storage size by rougly 30% and you need to decode it each time you display it. Look at the table structure for Wordpress, the most widely used software that stores html on a mysql database using php. What do they use? LONGTEXT. In your case TEXT is probably better because you probably have a good idea about the size of the page.
Store HTML into a variable using
addslashes()
function.After this, form an SQL query.
and you have to add
stripslashes
when retrieve from DBI use base64 encoded data to store in my Database with the BLOB datatype. The boilerplate code is as follow.
To encode data in base64
And save the data in database with BLOB. Now after retrieve data, just decode it as follow.
Now the value of $contentDecoded is the plain HTML.
See this: I did nothing... i use it like this ..working just fine and also saving in mysql and also retreving back properly.
I would recommend you to use
TEXT
. Blobs are typically used to store images, audio or other multimedia objects. read more about bolobsData type to store HTML in Database would be
TEXT
.Use mysql_real_escape_string() to store html text in database