Я пытался использовать php preg_split, чтобы переписать строку оператора sql вставки sql mysql в общий формат, например:
INSERT INTO `table_name`
SET `col1` = 123,` col2` = ‘Это’ ‘контрольный пример’ ‘, и это тоже.’
Ожидаемый результат:
Array [0] = ‘col1’
Массив [1] = 123
Array [2] = ‘col2’
Array [3] = ‘Это’ ‘контрольный пример’ ‘, и это тоже.’
Таким образом, я могу использовать массив результатов для записи sql в следующее:
Вставить в table_name (col1, col2)
значения (123, ‘Это’ » контрольный пример », и это тоже. ‘);
Очевидно, простая функция, как preg_split (‘/, /’, $ source) не будет работать во всех случаях. Мне интересно, есть ли лучший способ сделать это? Заранее спасибо.
/**
* @param array $fields_values
* @param string $table
* @return string
*/
function insertQuery(array $fields_values, $table) {
$fields = implode(', ', array_keys($fields_values));
$values = implode(', ', array_values($fields_values));
return $query = "INSERT INTO {$table} ({$fields}) VALUES ({$values})";
}
Других решений пока нет …