• 技术文章 >后端开发 >php教程

    PDO:exec()返回值的有关问题

    2016-06-13 13:36:50原创800
    PDO::exec()返回值的问题。
    //设置脚本运行时间为不限制
    set_time_limit(0);

    //用PDO创建pgsql连接
    try {
    $pgLink = new PDO('pgsql:host=localhost port=5432 dbname=db2 user=root password=111111');
    }catch(Exception $e) {
    echo $e->getMessage();
    }

    //定义SQL修改语句
    $sql = "UPDATE trade.membership SET gender=1, birth_type=0, name='wsy', birthday='2011-01-01', email='', join_date='2011-01-02', status=1, address='aaaa',id_number='25454', postcode='100031', phone='666', type_id=1 WHERE mobile='110';";

    //执行SQL语句
    $result = $pgLink->exec($sql);

    //输出SQL结果
    echo $result.' '.$sql;

    输出结果:
    1 UPDATE trade.membership SET gender=1, birth_type=0, name='wsy', birthday='2011-01-01', email='', join_date='2011-01-02', status=1, address='aaaa', id_number='25454', postcode='100031', phone='666', type_id=1 WHERE mobile='110';

    问题是这样:
    这个表里压根就没有mobile='110'这一行,将$sql语句拿到本地SQL服务器上运行也是“0条影响行数”。
    但在程序里的结果为什么是“1”?PDO::exec()的输出结果不应该是增删改的受影响行数吗?

    ------解决方案--------------------
    这个应该是PDO的一个BUG,用预处理做然后用PDO::rowCount()可以正确处理。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:SQL PDO type 2011 mobile
    上一篇: 新手分页有关问题,PHP分页代查询功能,没有查询结果就出错 下一篇: 正则不会 求解决解决办法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• PHP开发惯用函数和必须会的函数总结 -带例子• 那些年一行学习的PHP(一)• php如何采集或者 调用 .net开发的 webservice• php实现通过cookie换肤的方法,php实现cookie换肤_PHP教程• PHP怎么样读取COOKIES_PHP教程
    1/1

    PHP中文网