вставка php в таблицу mysql от объекта

0

У меня есть таблица в массиве, который я хочу обновить с помощью объекта с соответствующей схемой в php. запрос:

REPLACE INTO entries ( mail, name, gender, age, ip, t, code, v, ansvers ) 
VALUES ( '$entry->mail', '$entry->name', '$entry->gender', '$entry->age', '$entry->ip', '$entry->t', '$entry->code', '$entry->v', '$entry->ansvers' )

Я хотел бы знать, есть ли простой способ указать переменные без необходимости создавать строку запроса с использованием цикла и получения ключей переменных объекта/массива или ввода всего вручную. например, если я переименую $entry->mail на $entry->mail2 тогда запрос будет делать:

REPLACE INTO entries ( mail2 ) VALUES ( '$entry->mail2' )

если необходимо, запись $ entry может быть изменена на любую структуру данных.

Благодарю.

  • 0
    Используйте ORM, такой как RedBean
  • 0
    Являются ли оба примера псевдокодом или реальными? Оба они восприимчивы к SQL-инъекциям, а VALUES ( `$entry->mail2` ) недействителен.
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Если есть действительно соответствие 1:1 от объекта к таблице, вы можете сделать это, чтобы сгенерировать запрос:

$query = "REPLACE INTO entries (" . 
   implode(',', array_keys(get_object_vars($entry))) .
   ") VALUES ('" . 
   implode("','", get_object_vars($entry)) .
   "')";
  • 0
    Благодарю. я надеялся на какую-то автоматическую функцию, но это достаточно просто, и мне все равно нужно вернуть get_object_vars ($ entry) для других функций.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню