简体   繁体   English

NULL MySQL转换为PHP PDO

[英]NULL MySQL to PHP PDO

I'm looking for and don't find what's the value in PHP of NULL from MySQL got with PDO. 我正在寻找,但没有找到PDO附带的MySQL的NULL的 PHP中的值是什么。
I found about PDO::PARAM_NULL but it's to insert data in MySQL and about constants PDO::NULL_NATURAL , PDO::NULL_EMPTY_STRING & PDO::NULL_TO_STRING but not about what's it for. 我发现了有关PDO :: PARAM_NULL的信息,但它是要在MySQL中插入数据以及有关常量PDO :: NULL_NATURALPDO :: NULL_EMPTY_STRINGPDO :: NULL_TO_STRING的信息,但并不是关于它的用途的信息。
Example of code: 代码示例:

class CountryManager{
    public function getAll() {
        $countries = [ ];

        $query = $this->_db->query ( "SELECT f_id, f_icon, f_name FROM t_country ORDER BY f_name;" );

        while ( $data = $query->fetch ( PDO::FETCH_ASSOC ) )
            $countries [] = new CountryObject ( $data );

        return $countries;
    }
}

With CountryObject 与CountryObject

class CountryObject {
    private $_f_id;
    private $_f_icon = null;
    private $_f_name;
}

I need to know if the nullable field f_icon is filled or not, and for all my nullable fields in my db as well. 我需要知道是否可以为空的字段f_icon填充,以及我数据库中所有可为空的字段。

The value in PHP of NULL from MySQL you get with PDO is null . 通过PDO从MySQL获取的PHP中NULL的值为null

I suppose you are just instantiating your object wrong way. 我想您只是用错误的方式实例化了对象。 Let me suggest you my article, Fetching objects with PDO , which can prove thatboth PDO and mysql always return nulls all right: 让我为您推荐我的文章,《 使用PDO获取对象》 ,它可以证明PDO和mysql总是返回null可以:

class CountryObject {
    private $_f_id;
    private $_f_icon = null;
    private $_f_name;
}
$obj = $pdo->query("SELECT 1 as _f_id, null as _f_icon, 'name' as _f_name")
           ->fetchObject('CountryObject');
var_dump($obj);

returns 退货

object(CountryObject)#4 (3) {
  ["_f_id":"CountryObject":private]=>
  string(1) "1"
  ["_f_icon":"CountryObject":private]=>
  NULL
  ["_f_name":"CountryObject":private]=>
  string(4) "name"
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM