PHP pdao用法总结

$sql  = 'SELECT name, colour, calories
     FROM fruit
     WHERE calories < :calories AND colour = :colour';
$sth  $dbh ->prepare( $sql array (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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值