sql >> Database >  >> RDS >> Mysql

php-array invoegen in mySql

Welk gegevenstype is de kolom "familie" in MySQL? Ik ben er vrij zeker van dat je dergelijke php-arrays niet rechtstreeks in MySQL kunt invoegen. Als het mogelijk is, denk dan dat het een van die dingen is die ik niet wist, want ik geprobeerd.

De eenvoudigste manier om dit te doen, is door uw php-array te coderen in een JSON-tekenreeks en deze weer te decoderen in een php-array wanneer u deze leest.

$family = array();
...
$familyJsonString = json_encode($family);
...
$insertInfo = "INSERT INTO `family_info`.`info` 
            (`name`, `info`, `family`)
            VALUES (
            '$name', '$info', '$familyJsonString');";
...
$queryString = "SELECT * FROM family_info WHERE name = '$someName'";
$query = mysql_query($queryString, $connection);
$familyData = mysql_fetch_assoc($query);
$decodedFamilyArray = json_decode($familyData['family']);

waar de familiekolom een ​​varchar- of teksttype moet zijn, afhankelijk van hoe lang de familiearray wordt.

Een meer robuuste manier om dit te doen, is door een aparte tabel te maken om uw familiegegevens op te slaan en een MySQL JOIN-instructie te gebruiken om de waarden te krijgen die aan één item in de family_info-tabel zijn gekoppeld.

hier is wat informatie over deelname

Twee tabellen samenvoegen zonder ongewenste rij terug te geven

http://dev.mysql.com/doc/refman/5.0 /en/join.html



  1. MySQL retourneert extra records bij gebruik van een lang typenummer om varchar-type te filteren

  2. kan niet meerdere tabellen opslaan in cakephp

  3. Ingewikkelde SQL-query - items vinden die overeenkomen met meerdere verschillende externe sleutels

  4. mysql maak alleen een weergave als deze nog niet bestaat