0

我正在使用 Zend Frameworker 1.12。

根据帮助文件,我使用 Zend_Db_Statement 来执行我的 sql。

下面是我的php代码:

 $sql = "delete from options where id=?";
 $stmt = new Zend_Db_Statement_Mysqli($this->getAdapter(), $sql);
 return $stmt->execute(array('1'));

但错误是异常 'PDOException' 与消息 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in D:\Zend\workspaces\DefaultWorkspace.metadata.plugins\org.zend.php.framework.resource\resources \ZendFramework-1\library\Zend\Db\Statement\Mysqli.php:209 堆栈跟踪:

………………

我用谷歌搜索了几天,但没有任何效果。

谁知道怎么修它?

4

2 回答 2

5

该代码使用该类Zend_Db_Statement_Mysqli,但您的连接不是“mysqli”连接。这是一个 Pdo_Mysql 连接。这会导致代码失败。您可以通过替换为来修复您的Zend_Db_Statement_Mysqli代码Zend_Db_Statement_Pdo。但是,更好的解决方案如下:

$sql = "delete from options where id=?";
$this->getAdapter()->query($sql, array('1'));

这应该会自动使用正确的类(无论您的数据库连接类型如何),并且会在内部处理不同的步骤。

于 2013-10-26T16:47:47.560 回答
-1
$sql = "delete from options where id=?";
$stmt = new Zend_Db_Statement_Mysqli($this->getAdapter(), $sql);
return $stmt->execute(array(1 => '1'));
于 2013-10-26T15:50:44.063 回答