我正在使用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 堆栈跟踪:
......... .........
我用谷歌搜索了几天,但没有任何作用。
任何人都知道如何解决它?
答案 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'));