PHP pdao用法总结

$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth $dbh->prepare($sqlarray(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow $sth->fetchAll();

 

1
2
3
4
5
6
7
$sth $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow $sth->fetchAll();

总结地址:http://www.cnblogs.com/pinocchioatbeijing/archive/2012/03/20/2407869.html

 

http://sjolzy.cn/PDO-query-results-achieved-in-many-ways.html

无论原来数据库里的数据是什么类型,通过这写遍历方法出来的数组,里面的成员都成了字符串 ? var_dump一下,发现全是string......

If you want to use PDO::FETCH_CLASS but don't like that all the values are of the type string, you can always use the __construct function of the class specified to convert them to a different type.

Another way is using mysqlnd, but it seems I had to recompile PHP for that.

<?php

class Cdr {
    public $a// int
    public $b// float
    public $c// string
    
    public function __construct() {
        $this->intval($this->a);
        $this->floatval($this->b);
    }
     
}

// ...
$arrCdrs $objSqlStatement->fetchAll(PDO::FETCH_CLASS'Cdr');

?>

 setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 

发现填上这句话后,fetchall得来的类型是正确的。

如果没有这句话,fetchall得来的都是字符串 

PDO 指南

http://www.oschina.net/translate/php-pdo-how-to

 

posted on 2016-04-28 19:29  防空洞123  阅读(653)  评论(0编辑  收藏  举报

导航