而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