В настоящее время я пытаюсь написать простой ORM с PHP и mysql. Я хочу, чтобы класс orm мог работать с объединенными таблицами.
Итак, вот моя проблема, следующий код показывает, как я сопоставляю данные, полученные в результате запроса, с массивом.
public function execute_query($db_connection)
{
$query = '';
foreach($this->sql_query as $query_part)
$query .= $query_part;
$result = $db_connection->query($query);
while($row = $result->fetch_assoc())
{
array_push($this->m_Data, $row);
}
}
db_connection - объект mysqli.
sql_query содержит все различные части запроса (например, sql_query ['join'] и т. д.).
m_Data - это массив, содержащий данные, прочитанные из базы данных.
Моя конкретная проблема сейчас заключается в том, что когда я использую в своем запросе оператор соединения, эта функция просто переопределяет поля с тем же именем в моем массиве m_Data. Также, если я не сохраню имена таблиц, из которых поступают определенные данные полей, я позже не смогу обновить таблицы с помощью того же оператора соединения.
Т.Л., др. Мне нужно иметь возможность не только сохранять данные таблицы следующим образом: m_Data {'field_name' => 'value'}, но мне также нужно сохранять имя таблицы, из которой выбрано поле. Затем я мог бы сохранить данные, например, m_Data {'table_name.field_name' => 'value'}, что позволит мне позже сгенерировать запрос для успешного обновления объединенных таблиц.
Кажется, я не могу найти какую-либо информацию о том, как получить имя таблицы происхождения для каждого поля, которое я извлекаю из результата.
Если это невозможно с mysqli, я буду очень признателен, если вы укажете мне правильное направление.
дополнительная короткая постановка задачи:
Мне нужно получить набор результатов и прочитать каждую строку отдельно. Для каждой строки мне нужна следующая информация для каждого выбранного поля: field_name, table_name, value.
Должен быть простой ответ на этот вопрос, но я, похоже, ищу неправильные ключевые слова, чтобы найти решение.
Надеюсь, я написал это достаточно понятно.