本文整理匯總了PHP中Doctrine_Table::isIdentifierAutoincrement方法的典型用法代碼示例。如果您正苦於以下問題:PHP Doctrine_Table::isIdentifierAutoincrement方法的具體用法?PHP Doctrine_Table::isIdentifierAutoincrement怎麽用?PHP Doctrine_Table::isIdentifierAutoincrement使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Doctrine_Table
的用法示例。
在下文中一共展示了Doctrine_Table::isIdentifierAutoincrement方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: insert
/**
* Inserts a table row with specified data.
*
* @param Doctrine_Table $table The table to insert data into.
* @param array $values An associative array containing column-value pairs.
* Values can be strings or Doctrine_Expression instances.
* @return integer the number of affected rows. Boolean false if empty value array was given,
*/
public function insert(Doctrine_Table $table, array $fields)
{
$tableName = $table->getTableName();
// column names are specified as array keys
$cols = array();
// the query VALUES will contain either expresions (eg 'NOW()') or ?
$a = array();
foreach ($fields as $fieldName => $value) {
if ($table->isIdentifier($fieldName) && $table->isIdentifierAutoincrement() && $value == null) {
// Autoincrement fields should not be added to the insert statement
// if their value is null
unset($fields[$fieldName]);
continue;
}
$cols[] = $this->quoteIdentifier($table->getColumnName($fieldName));
if ($value instanceof Doctrine_Expression) {
$a[] = $value->getSql();
unset($fields[$fieldName]);
} else {
$a[] = '?';
}
}
if (count($fields) == 0) {
// Real fix #1786 and #2327 (default values when table is just 'id' as PK)
return $this->exec('INSERT INTO ' . $this->quoteIdentifier($tableName) . ' ' . ' VALUES (DEFAULT)');
}
// build the statement
$query = 'INSERT INTO ' . $this->quoteIdentifier($tableName) . ' (' . implode(', ', $cols) . ')' . ' VALUES (' . implode(', ', $a) . ')';
return $this->exec($query, array_values($fields));
}