sql >> Databasteknik >  >> RDS >> Mysql

Använder PHP för att ta första raden i en CSV-fil och skapa en MySQL-tabell med data

Bygger på Nouveau s kod kan du göra detta

for($i = 0; $i <= count($fieldList); $i++)
{
    if (is_numeric($fieldList[$i]))
    {
        if (strpos($fieldList[$i],'.') !== false){
            $fieldList[$i] = (int)$fieldList[$i];
        }else{
            $fieldList[$i] = (float)$fieldList[$i];
        }
    }

    switch(gettype($fieldList[$i])) {
        case 'integer':
            $typeInfo = 'int(11)';
            break;
        case 'float':
        case 'double':
            $typeInfo = 'float';
            break;

        case 'string':
            $typeInfo = 'varchar(80)';
            break;
        default:
            $typeInfo = 'varchar(80)';
            break;
    }
if(gettype($fieldList[$i]) != NULL) echo "\t".'`'.$i.'` '.$typeInfo.' NOT NULL, --'.gettype($fieldList[$i]).' '.$fieldList[$i]."<br/>\n";

}

Det fungerar, notera tillägget av "case 'double':" i switchen, men det kan finnas ett bättre sätt att göra int/float-kontrollen eftersom de bara skulle fungera med vanliga brittiska/amerikanska nummer.



  1. MySQL Amazon RDS:Lås Väntetiden har överskridits

  2. Kan inte logga in på mysql 5.7.9 efter byte av lösenord

  3. 4 sätt att få information om en tabells struktur i SQLite

  4. Inkrementell datamaskering och mappning:Upptäcker ändringar och uppdaterar...