Mysql &引用;SQLSTATE[HY000]:一般错误;在Zend框架中
我已经在Zend框架中工作了一年多了,但我从未遇到过这个问题。 我正在本地机器上开发,运行PHP5.2、Zend Framework 1.11.4和MySQL 5。这一切都是在Ubuntu 10.04上运行Apache2 我的代码正在尝试向数据库中添加权限记录。这是我的密码:Mysql &引用;SQLSTATE[HY000]:一般错误;在Zend框架中,mysql,zend-framework,zend-db,Mysql,Zend Framework,Zend Db,我已经在Zend框架中工作了一年多了,但我从未遇到过这个问题。 我正在本地机器上开发,运行PHP5.2、Zend Framework 1.11.4和MySQL 5。这一切都是在Ubuntu 10.04上运行Apache2 我的代码正在尝试向数据库中添加权限记录。这是我的密码: protected function _add($resource, $description) { $this->_sql = 'INSERT INTO Permissions (id, resource,
protected function _add($resource, $description)
{
$this->_sql = 'INSERT INTO Permissions (id, resource, description)
VALUES (NULL, :resource, :description)';
$this->_params = array(
':resource' => $resource,
':description' => $description
);
$this->_query = $this->_db->prepare($this->_sql);
$this->_query->execute($this->_params);
$this->_result = $this->_query->fetchAll();
if(count($this->_result) != 1) {
return false;
}
return $this->_result[0];
}
异常抛出发生在“$this->\u result=$this->\u query->fetchAll();”行上,返回的消息只是“SQLSTATE[HY000]:常规错误”。就这样。没有错误号码或任何东西。只是一般的错误。
但是,当我检查权限表时,记录已成功添加。WTF
我一直在谷歌上搜索答案,但我没有找到任何解决问题的方法。
有什么想法吗?
id
是你的主键吗?许多RDBMS不允许PK使用NULL
,因此此RDBMS必须失败
更新:
我明白了,mySQL允许NULL
用于PK AI
。然而,我会省略它
我还看到它是一个
INSERT
-语句,这样的东西(afair)不会返回任何东西。也许(只是一个猜测;))您正在寻找的是?id
是您的PK吗?许多RDBMS不允许PK使用NULL
,因此此RDBMS必须失败
更新:
我明白了,mySQL允许NULL
用于PK AI
。然而,我会省略它
我还看到它是一个INSERT
-语句,这样的东西(afair)不会返回任何东西。也许(只是一个猜测;)你正在寻找答案
而不是
$this->_result = $this->_query->fetchAll();
我应该早点发现的
而不是
$this->_result = $this->_query->fetchAll();
我应该早就发现了这个问题。[$this->\u sql='插入权限(resource,description)值(:resource,:description);]]行更改可以解决您的问题,正如kingcrunch所述。只有当
id
定义为PK AI
(很可能;)id是PK,但这是MySQL,id字段设置为自动递增,所以如果我传递null。。。它只是插入PK的下一个值。插入权限(资源,描述)值(:资源,:描述)输入按钮。。。插入权限(资源,描述)值(:资源,:描述)未修复此问题。。。我在想,在Zend中,我无法对插入进行fetchAll。这是有道理的。我会在测试后更新这篇文章。[[$this->\u sql='插入到权限(resource,description)值(:resource,:description);]]行更改将修复您的问题,正如kingcrunch所述。只有当id
定义为PK AI
(很可能;)id是PK,但这是MySQL,id字段设置为自动递增,所以如果我传递null。。。它只是插入PK的下一个值。插入权限(资源,描述)值(:资源,:描述)输入按钮。。。插入权限(资源,描述)值(:资源,:描述)未修复此问题。。。我在想,在Zend中,我无法对插入进行fetchAll。这是有道理的。我会在测试后更新这篇文章。