本文整理汇总了PHP中DBAdapter::getTimestampFormatter方法的典型用法代码示例。如果您正苦于以下问题:PHP DBAdapter::getTimestampFormatter方法的具体用法?PHP DBAdapter::getTimestampFormatter怎么用?PHP DBAdapter::getTimestampFormatter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBAdapter
的用法示例。
在下文中一共展示了DBAdapter::getTimestampFormatter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: populateStmtValues
/**
* Populates values in a prepared statement.
*
* This method is designed to work with the createSelectSql() method, which creates
* both the SELECT SQL statement and populates a passed-in array of parameter
* values that should be substituted.
*
* <code>
* $params = array();
* $sql = BasePeer::createSelectSql($criteria, $params);
* BasePeer::populateStmtValues($stmt, $params, Propel::getDatabaseMap($critera->getDbName()), Propel::getDB($criteria->getDbName()));
* </code>
*
* @param PDOStatement $stmt
* @param array $params array('column' => ..., 'table' => ..., 'value' => ...)
* @param DatabaseMap $dbMap
* @return int The number of params replaced.
* @see createSelectSql()
* @see doSelect()
*/
public static function populateStmtValues(PDOStatement $stmt, array $params, DatabaseMap $dbMap, DBAdapter $db)
{
$i = 1;
foreach ($params as $param) {
$tableName = $param['table'];
$columnName = $param['column'];
$value = $param['value'];
if (null === $value) {
$stmt->bindValue(':p' . $i++, null, PDO::PARAM_NULL);
} elseif (null !== $tableName) {
$cMap = $dbMap->getTable($tableName)->getColumn($columnName);
$type = $cMap->getType();
$pdoType = $cMap->getPdoType();
// FIXME - This is a temporary hack to get around apparent bugs w/ PDO+MYSQL
// See http://pecl.php.net/bugs/bug.php?id=9919
if ($pdoType == PDO::PARAM_BOOL && $db instanceof DBMySQL) {
$value = (int) $value;
$pdoType = PDO::PARAM_INT;
} elseif (is_numeric($value) && $cMap->isEpochTemporal()) {
// it's a timestamp that needs to be formatted
if ($type == PropelColumnTypes::TIMESTAMP) {
$value = date($db->getTimestampFormatter(), $value);
} else {
if ($type == PropelColumnTypes::DATE) {
$value = date($db->getDateFormatter(), $value);
} else {
if ($type == PropelColumnTypes::TIME) {
$value = date($db->getTimeFormatter(), $value);
}
}
}
} elseif ($value instanceof DateTime && $cMap->isTemporal()) {
// it's a timestamp that needs to be formatted
if ($type == PropelColumnTypes::TIMESTAMP || $type == PropelColumnTypes::BU_TIMESTAMP) {
$value = $value->format($db->getTimestampFormatter());
} else {
if ($type == PropelColumnTypes::DATE || $type == PropelColumnTypes::BU_DATE) {
$value = $value->format($db->getDateFormatter());
} else {
if ($type == PropelColumnTypes::TIME) {
$value = $value->format($db->getTimeFormatter());
}
}
}
} elseif (is_resource($value) && $cMap->isLob()) {
// we always need to make sure that the stream is rewound, otherwise nothing will
// get written to database.
rewind($value);
}
$stmt->bindValue(':p' . $i++, $value, $pdoType);
} else {
$stmt->bindValue(':p' . $i++, $value);
}
}
// foreach
}
示例2: populateStmtValues
/**
* Populates values in a prepared statement.
*
* This method is designed to work with the createSelectSql() method, which creates
* both the SELECT SQL statement and populates a passed-in array of parameter
* values that should be substituted.
*
* <code>
* $params = array();
* $sql = BasePeer::createSelectSql($criteria, $params);
* BasePeer::populateStmtValues($stmt, $params, Propel::getDatabaseMap($critera->getDbName()), Propel::getDB($criteria->getDbName()));
* </code>
*
* @param PDOStatement $stmt
* @param array $params array('column' => ..., 'table' => ..., 'value' => ...)
* @param DatabaseMap $dbMap
* @return int The number of params replaced.
* @see createSelectSql()
* @see doSelect()
*/
public static function populateStmtValues(PDOStatement $stmt, array $params, DatabaseMap $dbMap, DBAdapter $db)
{
$i = 1;
foreach ($params as $param) {
$tableName = $param['table'];
$columnName = $param['column'];
$value = $param['value'];
if (null === $value) {
$stmt->bindValue(':p' . $i++, null, PDO::PARAM_NULL);
} elseif (null !== $tableName) {
$cMap = $dbMap->getTable($tableName)->getColumn($columnName);
$type = $cMap->getType();
$pdoType = $cMap->getPdoType();
// FIXME - This is a temporary hack to get around apparent bugs w/ PDO+MYSQL
// See http://pecl.php.net/bugs/bug.php?id=9919
if ($pdoType == PDO::PARAM_BOOL && $db instanceof DBMySQL) {
$value = (int) $value;
$pdoType = PDO::PARAM_INT;
} elseif (is_numeric($value) && $cMap->isEpochTemporal()) {
// it's a timestamp that needs to be formatted
if ($type == PropelColumnTypes::TIMESTAMP) {
$value = date($db->getTimestampFormatter(), $value);
} else {
if ($type == PropelColumnTypes::DATE) {
$value = date($db->getDateFormatter(), $value);
} else {
if ($type == PropelColumnTypes::TIME) {
$value = date($db->getTimeFormatter(), $value);
}
}
}
} elseif ($value instanceof DateTime && $cMap->isTemporal()) {
// it's a timestamp that needs to be formatted
if ($type == PropelColumnTypes::TIMESTAMP || $type == PropelColumnTypes::BU_TIMESTAMP) {
$value = $value->format($db->getTimestampFormatter());
} else {
if ($type == PropelColumnTypes::DATE || $type == PropelColumnTypes::BU_DATE) {
$value = $value->format($db->getDateFormatter());
} else {
if ($type == PropelColumnTypes::TIME) {
$value = $value->format($db->getTimeFormatter());
}
}
}
} elseif (is_resource($value) && $cMap->isLob()) {
// we always need to make sure that the stream is rewound, otherwise nothing will
// get written to database.
rewind($value);
}
// pdo_sqlsrv must have bind binaries using bindParam so that the PDO::SQLSRV_ENCODING_BINARY
// driver option can be utilized. This requires a unique blob parameter because the bindParam
// value is passed by reference and if we didn't do this then the referenced parameter value
// would change on the next loop
if ($db instanceof DBSQLSRV && is_resource($value) && $cMap->isLob()) {
$blob = "blob" . $i;
${$blob} = $value;
$stmt->bindParam(':p' . $i++, ${$blob}, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
} else {
$stmt->bindValue(':p' . $i++, $value, $pdoType);
}
} else {
$stmt->bindValue(':p' . $i++, $value);
}
}
// foreach
}