1

PHP 5.2.17 (cli) (built: Jan 17 2011 12:51:24) 版权所有 (c) 1997-2010 The PHP Group Zend Engine v2.2.0, Copyright (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) { 始终为假。errorInfo() 返回一个 [0] => 0000 的数组。

我已经阅读了 PDO 手册,并且正在参考http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers#INSERT.2C_DELETE.2C_UPDATE_Prepared_Queries

rowcount() 不应该返回 1 (或者许多 id 的值传递给删除?

提前致谢。

4

1 回答 1

0

PDO::exec需要一个 SQL 语句字符串。如果您准备一份声明,则必须PDOStatement::execute改为致电

$delete_loan->execute($params);
于 2013-03-21T21:09:56.007 回答