public function storeFormValues( $params ) {
// Store all the parameters
$this->__construct( $params );
// Parse and store the publication date
if ( isset($params['publicationDate']) ) {
$publicationDate = explode ( '-', $params['publicationDate'] );
if ( count($publicationDate) == 3 ) {
list ( $y, $m, $d ) = $publicationDate;
$this->publicationDate = mktime ( 0, 0, 0, $m, $d, $y );
}
}
}
这两列都通过隐藏的输入字段存储,因为它们不能由用户通过表单设置。“editedDate”的默认值为 null,除非页面/文章正在更新,因为每次编辑都会不断更改。“publicationDate”的情况设置一次。我遇到的问题是即使通过表单(0000-00-00 00:00:00)设置了正确的值,也没有存储日期。“publicationDate”列仅存储时间值为 - 00:00:00 的日期(例如 2019-12-05 00:00:00),并且在存储编辑的日期时,它存储所有日期和时间值,但日期和错误即使表单提交了正确的值,也会提交到数据库。
这就是它被插入数据库的方式
$sql = "INSERT INTO examples ( publicationDate, editedDate, title, summary, content, imageExtension ) VALUES ( FROM_UNIXTIME(:publicationDate), FROM_UNIXTIME(:editedDate), :example1, :example2, :example3 )";
在 html 表单中,输入“值”被回显
echo date( "Y-m-d H:i:s" );
在浏览器中查看源代码时,即使是“editedDate”的空值,当它是第一次创建/发布页面(publicationDate)时,“值”也会被设置,这在数据库中可以为空。
**我终于通过一些试验和错误修复了它。首先,在表单模板中,只有“publicationDate”的输入被发送到浏览器(*hidden),如果网页/文章刚刚被创建(新),并且如果它正在被编辑,则只有“editedDate”的输入" 正在发送到浏览器。但是后来我不得不更改我知道导致表单中输入的值没有被放入数据库的片段
if ( isset($params['publicationDate'])) {
$this->publicationDate = time ( );
$this->editedDate = time ("");
}
else if (isset($params['editedDate'])) {
$this->editedDate = time( );
}
}
汪汪一只猫
喵喵时光机