Как напечатать элементы массива обратно в заданном диапазоне

Сначала вы должны преобразовать массив в строку. Учитывая, что это массив строк (не двумерный массив), вы можете использовать функцию implode .

Имейте в виду, что каждое значение должно быть заключено в скобки и правильно экранировано, чтобы обеспечить правильный оператор INSERT и избежать риска инъекции SQL. Для правильного экранирования вы можете использовать метод quote для PDOConnection - если вы подключаетесь к MySQL через PDO. Чтобы выполнить эту операцию для каждой записи вашего массива, вы можете использовать array_map .

После того, как вы выбрали каждое значение и ввели их в одну строку, вам нужно поместить их в папку INSERT.

Пример:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dataToBeSaved = [
    'some',
    'data',
    'with "quotes"',
    'and statements\'); DROP DATABASE facebook_main; --'
];


$connection->query(
    sprintf(
        'INSERT INTO table (link) VALUES %s',
        implode(',',
            // for each entry of the array
            array_map(function($entry) use ($connection) { 
                // escape it and wrap it in parenthesis
                return sprintf('(%s)', $connection->quote($entry));
            }, $dataToBeSaved)
        )
    )
);

Примечание : в зависимости от количества записей, которые вы использовали, re, желающих вставить в базу данных, вы можете разбить их на несколько операторов INSERT.

-2
задан abelenky 16 January 2019 в 13:09
поделиться

1 ответ

Это должно работать:

int main(void){
    int a[] = {1,2,3,4,5,6,7,8,9,0};
    int k   = 3;
    int n   = 7;
    int i;

    for(i=k; i<=n-k; i++){
        int buff    = a[i];
        a[i]        = a[n-i+k];
        a[n-i+k]    = buff;
    }
}
0
ответ дан Spoutnovitch 16 January 2019 в 13:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: