Отображение имен столбцов MySQL на имена переменных - PullRequest
0 голосов
/ 30 марта 2012

Если я использую PDO и использую FETCH_INTO как

...
$query->setFetchMode(PDO::FETCH_INTO, $this);
$query->execute();

У меня маленькая проблема. Переменные PHP camelCase , но имена столбцов MySQL с подчеркиванием . Итак, у меня есть creationDate против creation_date.

Должен ли я переименовать одну сторону уравнения, чтобы она соответствовала другой, или выполнить какое-то "1" отображение 1 с помощью магического метода __set (с командой switch )?

1 Ответ

2 голосов
/ 30 марта 2012

Посмотрите на класс Symfony sfInflector, он выполняет ту же работу (в методе camelize):

* ** 1003 тысяча два *http://trac.symfony -project.org / браузер / филиалы / 1.4 / Библиотека / Util / sfInflector.class.php

Вот извлеченный код:

$tmp = $lower_case_and_underscored_word;
$tmp = sfToolkit::pregtr($tmp, array('#/(.?)#e'    => "'::'.strtoupper('\\1')",
                                     '/(^|_|-)+(.)/e' => "strtoupper('\\2')"));

И код от sfToolkit:

public static function pregtr($search, $replacePairs)
{
  return preg_replace(array_keys($replacePairs), array_values($replacePairs), $search);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...