Ja zawsze w takim wypadku używam tabeli i serialize(), taki mały przykład z ostatniego serwisu:
$dane['ulica']=$_POST['ulica'];
$dane['miasto']=$_POST['miasto'];
$dane['kod_pocztowy']=$_POST['kod1'].'-'.$_POST['kod2'];
$dane['tel_fax']=$_POST['tel_fax'];
$dane['tel1']=$_POST['tel1'];
$dane['tel2']=$_POST['tel2'];
$dane['tel3']=$_POST['tel3'];
$dane['fax']=$_POST['fax'];
$dane['tel_kom']=$_POST['tel_kom'];
$dane['nip']=$_POST['nip'];
$dane['wojewodztwo']=$_POST['w'];
$dane['imie']=$_POST['imie'];
$dana=serialize($dane);
if(substr($_POST['www'],0,7)!='http://') {
$strona='http://'.$_POST['www'];
} else {
$strona=$_POST['www'];
}
if($_GET['rodz']==0){
$zapytanie="INSERT INTO ".BAZA_PREFIKS."wizyt (nazwa, dane, www, email, branza, opis) VALUES('".$_POST['nazwa']."', '".$dana."','".$strona."','".$_POST['email']."',".$_POST['branza'].",'".$_POST['opis']."')";
Z tym rozwiązaniem nawet przeszukiwanie bazy nie jest za ciężkie ;) A chodziło o to, że klient do ostatniego momentu nie wiedział jakie dane rejestranta chce mieć :/