【发布时间】:2014-07-05 00:35:40
【问题描述】:
我有一个使用 setFetchMode(PDO::FETCH_CLASS, get_call_class()) 的 PDO 类,
但现在我正在开发一个类“工厂”,它映射通过构造函数传递的表,因此,我没有将表字段作为映射要获取的表的类的成员,而是有一个字段数组匹配!
到目前为止一切顺利!我想!
但我需要调整我的 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 数组,而不是一个类实例数组。
【问题讨论】:
-
我的目标是让我的框架能够在运行时创建表格和相应的地图,并且仍然能够使用它的工具!
-
会向工厂添加一个公共 $map 并将 PDO 调用更改为 $sth->setFetchMode(PDO::FETCH_CLASS, get_call_class(), $this->map );解决这个问题?我现在要试试这个!但是在我真正测试之前,我有几个课程需要适应!欢迎任何提示!谢谢!
标签: pdo