Я работаю над активным классом записей, который используется для извлечения записей из базы данных, которая может содержать объединения.mysql_fetch_assoc vs iterative mysql_fetch_row & mysql_fetch_column
Теперь в моих тестах у меня были некоторые данные с именами общих столбцов, которые содержат разные значения, но когда я выполняю функцию mysql_fetch_assoc
, она возвращает только один столбец общего имени и может потерять оставшиеся данные , Итак, я планирую заменить mysql_fetch_assoc
двумя контурами: первый, чтобы получить имена столбцов (используя mysql_fetch_column
), а второй - для получения данных (с двумя петлями, один вложенными в другой, который будет извлекать все данные , затем сгруппируйте его в массив, который будет возвращен), который будет содержать имя столбца и его родительскую таблицу (или если JOIN
имеет синтаксис AS
).
Но я обеспокоен тем, что это может быть неэффективным и может стоить довольно много времени на обработку, поэтому кто-то может уточнить эффективность обоих методов или если есть функция, такая как mysql_fetch_assoc
, которая добавит ссылку на таблицу столбца?
Дополнительная
Хотя это с использованием библиотеки MySQL для PHP, я рассматриваю возможность расширение библиотеки в будущем по PDO инициативы, но я бы использовать подобный метод выше (с помощью getColumnMeta
)
, имеющий несколько столбцов в запросе с тем же именем, всегда будет давать вам проблемы. Короткий ответ - не делать этого. SQL имеет отличную функцию сглаживания, которая позволяет переименовывать столбцы в выходной набор записей именно для такого рода столкновений. например 'SELECT field AS alias'. Взлом проблемы в описанном вами способе может решить проблему, но будет медленным и не обойти тот факт, что запрос должен быть написан лучше в первую очередь. – Spudley