1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

using bind parameters for updates

This commit is contained in:
Aaron Patterson 2011-04-30 17:26:42 -07:00
parent e14e696e96
commit 1d7c0336ef
6 changed files with 16 additions and 5 deletions

View file

@ -55,20 +55,27 @@ module ActiveRecord
def exec_query(sql, name = 'SQL', binds = [])
end
# Executes insert +sql+ statement in the context of this connection using
# Executes insert +sql+ statement in the context of this connection using
# +binds+ as the bind substitutes. +name+ is the logged along with
# the executed +sql+ statement.
def exec_insert(sql, name, binds)
exec_query(sql, name, binds)
end
# Executes delete +sql+ statement in the context of this connection using
# Executes delete +sql+ statement in the context of this connection using
# +binds+ as the bind substitutes. +name+ is the logged along with
# the executed +sql+ statement.
def exec_delete(sql, name, binds)
exec_query(sql, name, binds)
end
# Executes update +sql+ statement in the context of this connection using
# +binds+ as the bind substitutes. +name+ is the logged along with
# the executed +sql+ statement.
def exec_update(sql, name, binds)
exec_query(sql, name, binds)
end
# Returns the last auto-generated ID from the affected table.
#
# +id_value+ will be returned unless the value is nil, in
@ -84,8 +91,8 @@ module ActiveRecord
end
# Executes the update statement and returns the number of rows affected.
def update(sql, name = nil)
update_sql(sql, name)
def update(sql, name = nil, binds = [])
exec_update(sql, name, binds)
end
# Executes the delete statement and returns the number of rows affected.

View file

@ -297,6 +297,7 @@ module ActiveRecord
execute sql.gsub('?') { quote(*binds.shift.reverse) }, name
@connection.affected_rows
end
alias :exec_update :exec_delete
def last_inserted_id(result)
@connection.last_id

View file

@ -455,6 +455,7 @@ module ActiveRecord
end
end
end
alias :exec_update :exec_delete
def begin_db_transaction #:nodoc:
exec_without_stmt "BEGIN"

View file

@ -548,6 +548,7 @@ module ActiveRecord
affected
end
end
alias :exec_update :exec_delete
def sql_for_insert(sql, pk, id_value, sequence_name, binds)
unless pk

View file

@ -182,6 +182,7 @@ module ActiveRecord
exec_query(sql, name, binds)
@connection.changes
end
alias :exec_update :exec_delete
def last_inserted_id(result)
@connection.last_insert_row_id

View file

@ -220,7 +220,7 @@ module ActiveRecord
stmt.take limit if limit
stmt.order(*order)
stmt.key = table[primary_key]
@klass.connection.update stmt.to_sql
@klass.connection.update stmt.to_sql, 'SQL', bind_values
end
end