Re: Storing an array on a table?
| From: | tg-php at gryffyndevelopment dot com | Date: | Thu, 01 Sep 2005 15:18:02 +0000 |
| Subject: | Re: Storing an array on a table? | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-40191@lists.php.net to get a copy of this message | ||
Sorry, didn't catch this thread from the beginning, but did anyone recommend trying the
serialize() and unserialize() commands? They'll convert the array to a block of text that can
be stored, retrieved and unserialized.
My gut instinct is that if you're trying to store any array in a database, you may not have
thought through your design very well. BUT.. I also know that there are cases where you might want
to (I've actually done it before... being lazy in that case..hah) so dont take that as
criticism, just wondering if there's a "more right" way to do it.
If that's what you need to do though, definitely check out serialize (unless someone knows
something I don't).
Serialize() should do essentially what's being proposed below, just without having to figure
out what string may not be in your array.
good luck!
-TG
= = = Original message = = =
if you just have a simple array with automatic numeric keys and text
you could just implode the data to a string with a separator not
found in your data:
$dataArray = array("hello", "goodbye", "etc.");
$storable = implode("||||", $dataArray);
// $storable becomes "hello||||goodbye||||etc."
//then, use explode to get the original array back again
$dataArray = explode("||||", $storable);
you could use a similar technique if you want to put the keys in as
well, albeit slightly more complicated (e.g. use "||||" to separate
each element in the array and "||" to separate each key from its
value). Just find a divider you know your data will not contain, such
as a pipe: "|".
This has worked well for me.
Jordan
On Sep 1, 2005, at 8:55 AM, Miguel Guirao wrote:
>
> I want to store an array into a field on a MySQL table, Is it
> posible to
> save it? Maybe into a string field?
>
>
___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.