Schrijven en lezen aan een mysql-tabel van een array-gegevensstructuur met PHP

Ik ben een datastructuur aan het bouwen met behulp van multidimensionale associatieve arrays. Kan ik die datastructuur updaten naar een mysql-tabelveld en het dan opnieuw lezen?

Hier is een voorbeeld van wat ik probeer te doen:

$result = mysql_query("select * FROM color") or die(mysql_error());
$colors = "";
while($colorrec = mysql_fetch_array($result)){
 $colors[$colorrec['ID']][0] = $colorrec['Description'];
 $colors[$colorrec['ID']][1] = $colorrec['HexCode'];
}

Als ik nu doe:

mysql_query("UPDATE tempfile SET ColorInfo = '".$colors."' WHERE ID = '".tempID."'");

Kan ik dan doen:

$result = mysql_query("select * from tempfile WHERE ID = '".tempID."'");
$temprec = mysql_fetch_array($result);
$colors = $temprec['ColorInfo'];
0
waar heb je problemen mee? Welke fouten krijg je met de bovenstaande code?
toegevoegd de auteur mugetsu, de bron

1 antwoord

U kunt het serialiseren om het gegevenstype te behouden en vervolgens maak het desgevallend ongedaan wanneer u het terughaalt.

$result = mysql_query("select * FROM color") or die(mysql_error());
$colors = array();
while($colorrec = mysql_fetch_array($result)){
  $colors[$colorrec['ID']] = array($colorrec['Description'], $colorrec['HexCode']);
}

mysql_query("UPDATE tempfile SET ColorInfo = '".serialize($colors)."' WHERE ID = '".$tempID."'");

$result = mysql_query("select * from tempfile WHERE ID = '".$tempID."'");
$temprec = mysql_fetch_array($result);
$colors = unserialize($temprec['ColorInfo']);
0
toegevoegd
Stoer. Ik dacht niet dat wat ik probeerde te doen, zou werken, maar ik wist zeker dat er een manier was om het te doen. Ik zal het proberen.
toegevoegd de auteur user999684, de bron