gpt4 book ai didi

php - PDO::FETCH_OBJ 是否可以将 null 字段的值设置为 null,而不是保留属性未定义?

转载 作者:行者123 更新时间:2023-11-30 00:20:29 40 4
gpt4 key购买 nike

如果您:

  1. 左连接表作为查询的一部分

  2. 并使用 $W = $stmt->fetch(PDO::FETCH_OBJ) 循环结果

  3. 并且有一个字段 ColumnName,其值为空,因为无法对当前行进行联接。

那么属性$W->ColumnName将是未定义的。

是否存在 PDO 设置,其中空列可以在获取的对象中将其属性定义为空?

最佳答案

您可以使用实体类,而不是使用 PHP 标准类来检索值,如下所示。

Class customer {

protected $_email;

public function __construct(array $config = array()){
$this->setOptions($config);
}

public function getEmail(){
return $this->_email;
}

public function setEmail($email){
$this->_email = $email;
}

public function setOptions(array $options)
{
$_classMethods = get_class_methods($this);
foreach ($options as $key => $value) {
$method = 'set' . ucfirst($key);
if (in_array($method, $_classMethods)) {
$this->$method($value);
} else {
throw new Exception('Invalid method name');
}
}
return $this;
}

public function setOption($key, $value){
return $this->setOptions(array($key, $value));
}
}

现在您可以简单地执行此操作。

$W = $stmt->fetch(PDO::FETCH_ASSOC);
$customer = new Customer($w);

现在访问属性将返回 null 或实体类中设置的默认值。即使它在查询结果中未定义。

$customer->getEmail(); 

关于php - PDO::FETCH_OBJ 是否可以将 null 字段的值设置为 null,而不是保留属性未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283753/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com