而upgreading我的应用程序之一Mysql的PDO,查询EXEC失败
- 脚本语言,我也遇到了奇怪的问题是PHP
- 数据库MYSQL
- 我使用PDO类处理
我有这个简单的用户更新模块,其中包含4个不同的领域,并工作得很好,今天我决定增加更新用户组和查询可执行文件失败后的能力。
在分贝- 用户表具有以下字段:
- 用户名(VARCHAR 50)
- 密码(VARCHAR 64)
- 电子邮件(VARCHAR 128)
- 名称(VARCHAR 50)
- group(int 1)
- active(int 1)
查询我在表演的同时更新,在upgreade是在此之前:
UPDATE users SET username = ?, email = ?, name = ?, active = ? WHERE id = 1
Array
(
[username] => john
[email] => [email protected]
[name] => John Doe
[active] => 1
)
它工作得很好,现在查询我正在执行是这样的:
UPDATE users SET username = ?, email = ?, name = ?, group = ?, active = ? WHERE id = 1
Array
(
[username] => john
[email] => [email protected]
[name] => John Doe
[group] => 2
[active] => 1
)
这一个心不是工作,但是如果我没有检查ERRORINFO它返回数组:
Array
(
[0] => 00000
[0] =>
[0] =>
)
于是,我就只更新组没有其他领域是这样的:
UPDATE users SET group = ? WHERE id = 1
Array
(
[group] => 2
)
也失败了,这是奇怪的,因为如果我将它复制到phpmyadmin sql runer它正在正确执行。
,做高管的代码是这样的:
if($this->_query = $this->_pdo->prepare($sql)) {
if(count($params)) {
$x = 1;
foreach($params as $param) {
$this->_query->bindValue($x, $param);
$x++;
}
}
if($this->_query->execute()) {
$this->_insertid = $this->_pdo->lastInsertId();
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
再次一切工作,除非我尝试更新组,只有失败的话,那我不明白,也许有人不,所有并欣赏提示:)
顺便说一句,也许值得一提的是,当我INSERT
代替UPDATE
它被正确exec'd,只更新有一些问题
使用http://php.net/manual/ en/mysqli.error.php – Phantom
我不认为那个mysqli命令可以用于PDO类 – Mevia
然后使用:http://php.net/manual/en/pdo.errorinfo。php – Phantom