PHP PDO删除rowCount始终返回0

时间:2013-03-21 20:51:14

标签: php mysql pdo delete-row rowcount

PHP 5.2.17(cli)(建于:2011年1月17日12:51:24) 版权所有(c)1997-2010 PHP小组 Zend Engine v2.2.0,版权所有(c)1998-2010 Zend Technologies

这是我的功能

public function remove($id){
        $params = array(':id' => $id);
        $delete_loan = $this->ext_conn->prepare("DELETE FROM loan_program WHERE id = :id");
        $delete_loan->exec($params);
        $affected_rows = $delete_loan->rowCount();  //and not this?
        if ($affected_rows == 1) {
            return array('status' => 'success');
        } else {
            return array('status' => 'failure', 'reason' => 'delete_failed', 'rowcount' => $affected_rows, 'errornfo' => $delete_loan->errorInfo());
        }
    }

我正在调用它并在数据库中传递该行的id。该行将从数据库中删除,但if($ affected_rows == 1){始终为false。 errorInfo()返回一个数组[0] => 0000.

我已阅读PDO手册,并引用了http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers#INSERT.2C_DELETE.2C_UPDATE_Prepared_Queries

不应该rowcount()返回1(或者有多少id传递给remove的值?

提前致谢。

1 个答案:

答案 0 :(得分:0)

PDO::exec需要一个SQL语句字符串。如果您准备一份陈述,则必须拨打PDOStatement::execute而不是

$delete_loan->execute($params);