【发布时间】:2012-02-13 04:25:32
【问题描述】:
我尝试使用“重复”部分执行插入语句。据我所知 Zend 不支持这一点,所以我使用简单的声明:
$sql = "INSERT INTO agent(`inn`, `name`, `created`) VALUES(:inn, :name, :created) ON
DUPLICATE KEY UPDATE `inn` = :inn, `name` = :name, `created` = :created";
$stmt = $this->db->prepare($sql);
$stmt->execute($bind);
其中 $bind - 是数组:
array(
'inn'=>1234567890,
'name'=>'test user',
'created' = new Zend_Db_Expr('NOW()')
);
如果我通过 phpMyAdmin 尝试此查询 - 一切正常, 但在脚本执行后,“created”列的值为 '0000-00-00 00:00:00'。
WTF?
【问题讨论】:
-
如果将
new Zend_Db_Expr('NOW()')换成date('Y-m-d H:i:s', time());会发生什么? -
date('Y-m-d H:i:s', time()) 有效...但是为什么
t work Zend_Db_Expr? Or $stmt->execute doesnt 根本不支持参数中的 expr?
标签: php mysql zend-framework pdo zend-db