自定义PDO获取模式

时间:2014-07-05 00:35:40

标签: pdo

我有一个使用setFetchMode的PDO类(PDO :: FETCH_CLASS,get_called_class()),

但是现在我正在开发一个类' factory',它映射一个通过构造函数传递的表,因此,而不是将表字段作为映射表的类的成员获取我有一系列要匹配的字段!

到目前为止一切顺利!我想!

但我需要调整我的PDO类,我不知道如何告诉它映射到关联数组而不是类成员!

有人可以给我一个提示吗?

在我的班级工厂,我有以下内容:

class factory extends Database
{

public $fields = array();
public $fieldnames  = array();
public $fieldvalues = array();

// Nomes das colunas com datas de criação e alteração do registo
static protected $insert_timestamp = 'datacriado';
static protected $update_timestamp = 'dataalterado';

// Array com defaults que são aplicados ao objecto antes de gravação na BD
static protected $defaults = array();

// Nome da tabela na base de dados
public $TABLENAME = "";

/*********************************************************************
/   Construtor.
*********************************************************************/
public function __construct($map)
{
    parent::__construct();

    $fp=fopen($map,"r");
    $map=fgets($fp);
    fclose($fp);
    $mapArr=explode(":",$map);
    $this->TABLENAME=$mapArr[0];
    $map=$map[1];
    $mapArr=explode(";",$map);
    foreach($mapArr as $v)
    {
        array_push($fieldnames,$v);
        array_push($fieldvalues,":".$v);
        array_push($fields[$v],'');
    }



    // definir DEFAULTS se houver

}

}

我希望PDO给我一个$ fields数组,而不是一个类实例数组。

1 个答案:

答案 0 :(得分:0)

我想我抓住了解决方案,使用setFetchMode(PDO :: FETCH_ASSOC)并创建一个函数来解析$ this-map的结果并返回解析后的结果而不是PDO结果本身!

请评论!我不是百分百肯定这个解决方案!我相信这会奏效,但我也相信它一定是更好的方式!