我正在使用 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'));
但在 D:\Zend\workspaces\DefaultWorkspace.metadata.plugins\org.zend.php.framework 中,错误是异常“PDOException”,消息为“SQLSTATE[HY093]:无效参数编号:未绑定(bind)任何参数”。资源\资源\ZendFramework-1\库\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'));
这应该会自动使用正确的类(无论您的数据库连接类型如何)并将在内部处理不同的步骤。
关于php - Zend 框架错误 :Invalid parameter number: no parameters were bound',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19608639/