我对 silex 和 dbal 学说有疑问
$update_sql = "UPDATE ca_mailing SET aktiviert = 2";
$count= $app['db']->executeUpdate($update_sql, array());
echo "$count count";
-> 数据库中有 2 条记录,回显输出 2 -> 记录未更新。当数据库是 MyISAM 时它可以工作。
这是架构:
CREATE TABLE `ca_mailing` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`hash` varchar(255) NOT NULL,
`anrede` varchar(255) NOT NULL,
`aktiviert` int(1) NOT NULL,
`status` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `hash` (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1010 ;
最佳答案
解决办法:
我有:
'driverOptions' => array(
"SET NAMES 'UTF8'"
)
这会覆盖 PDO::ATTR_AUTOCOMMIT
'driverOptions' => array(
1002=>'SET NAMES utf8'
)
-> 这是正确的设置方式
关于php - 更新记录 dbal innodb silex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616965/