Для получения полного доступа
зарегистрируйтесь

Multiple INSERT from associate 2d PHP array


Формирует строку для запроса на вставку данных в базу - multiple INSERT из ассоциативного двумерного массива PHP. Чтобы одним запросом "вставить" массив в базу.

    function dbBuildInsertForManyRows($table, array $array) {
        $str = "INSERT INTO $table "; $strn = ''; $strv = array();
        foreach($array as $vals) {
            $strn = "(";
            $_strv = '(';
            if(!is_array($vals)) {throw new Exception('Two dimension array is incorrect.');}
            while(list($name, $value) = each($vals)) {
                if(is_bool($value)) {$strn .= "$name,"; $_strv .= ($value ? "true" : "false").","; continue;};
                if(is_string($value)) {$strn .= "$name,"; $_strv .= "'$value',"; continue;}
                if(!is_null($value) and ($value !== "")) {$strn .= "$name,"; $_strv .= "$value,"; continue;}
            }
            $_strv[strlen($_strv) - 1] = ')';
            $strn[strlen($strn) - 1] = ')';
            $strv[] = $_strv;
        }
        $str .= $strn." VALUES \r\n".implode(", \r\n", $strv);
        return $str;
    }

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация