* @param $table String: table name (prefix auto-added)
* @param $a Array: Array of rows to insert
* @param $fname String: Calling function name (use __METHOD__) for logs/profiling
- * @param $options Mixed: Associative array of options (ignored)
+ * @param $options Mixed: Associative array of options (ignored in this implementation)
* @param $onDupeUpdate Array: Associative array of fields to update on duplicate
*
* @return bool
*/
- function insertOrUpdate( $table, $a, $fname = 'DatabaseBase::insertOnDupeUpdate', $options = array(), $onDupeUpdate = array() ) {
+ function insertOrUpdate( $table, $a, $fname = 'DatabaseBase::insertOrUpdate', $options = array(), $onDupeUpdate = array() ) {
if ( isset( $a[0] ) && is_array( $a[0] ) ) {
$keys = array_keys( $a[0] );
$res = $this->select(
$table,
$keys,
- $this->makeList( $where, LIST_AND ),
+ $where,
__METHOD__
);
if ( $res ) {
- //Where there is a different value to set if this is being "updated", use the $onDupeUpdate value for that to
- //replace the original option (if it was an insert), and replace the column name with the value read from
- //the existing row
- foreach( $where as $k => $v ){
- if ( isset( $onDupeUpdate[$k] ) ){
+ // Where there is a different value to set if this is being "updated", use the $onDupeUpdate value for that to
+ // replace the original option (if it was an insert), and replace the column name with the value read from
+ // the existing row
+ foreach( $where as $k => $v ) {
+ if ( isset( $onDupeUpdate[$k] ) ) {
$options[$k] = str_replace( $k, $res[0]->{$k}, $onDupeUpdate[$k] );
}
}
} else {
- //No results, it's just an insert
+ // No results, it's just an insert
$update = $where;
}
*
* @return bool
*/
- function insertOrUpdate( $table, $a, $fname = 'DatabaseBase::insertOnDupeUpdate', $options = array(), $onDupeUpdate = array() ) {
+ function insertOrUpdate( $table, $a, $fname = 'DatabaseBase::insertOrUpdate', $options = array(), $onDupeUpdate = array() ) {
# No rows to insert, easy just return now
if ( !count( $a ) ) {
return true;