Zend 框架错误:参数编号无效:未绑定任何参数


Zend Framework Error:Invalid parameter number: no parameters were bound'

我正在使用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]:无效的参数编号:未绑定任何参数"在 D:''Zend''workspaces''DefaultWorkspace.metadata.plugins''org.zend.php.framework.resource''resources''ZendFramework-1''library''Zend''Db''Statement''Mysqli.php:209堆栈跟踪:

..................

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

有人知道如何解决它吗?

代码使用类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'));

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

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