Zend Framework错误:参数号无效:没有参数绑定'

时间:2013-10-26 15:46:44

标签: php mysql zend-framework

我正在使用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中没有绑定任何参数。资源\资源\ ZendFramework-1 \库\ Zend的\ DB \声明\ Mysqli.php:209 堆栈跟踪:

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

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

任何人都知道如何解决它?

2 个答案:

答案 0 :(得分: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'));

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

答案 1 :(得分:-1)

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