2012-03-30 14 views
0

Wenn ich PDO und verwenden FETCH_INTO wieMapping MySQL Spaltennamen Variablennamen

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

ich ein kleines Problem haben. PHP-Variablen sind camelCase, aber MySQL-Spaltennamen sind mit Unterstrichen. Also habe ich creationDate vs creation_date.

Sollte ich eine Seite der Gleichung umbenennen, um mit der anderen übereinzustimmen oder eine 1: 1 "Zuordnung" über __set magische Methode (mit Schalter Befehl) tun?

Antwort

2

Werfen Sie einen Blick auf sfInflector der symfony-Klasse hat es die gleiche Arbeit (in camelize-Methode):

http://trac.symfony-project.org/browser/branches/1.4/lib/util/sfInflector.class.php

Hier ist der extrahierten Code:

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

Und der Code von sfToolkit:

public static function pregtr($search, $replacePairs) 
{ 
    return preg_replace(array_keys($replacePairs), array_values($replacePairs), $search); 
} 
Verwandte Themen