Сначала вы должны преобразовать массив в строку. Учитывая, что это массив строк (не двумерный массив), вы можете использовать функцию 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
.
Это должно работать:
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;
}
}