Function exec
Execute an SQL command or prepared statement, such as INSERT/UPDATE/CREATE/etc.
ulong exec
(
Connection conn,
const(char[]) sql
) @safe;
ulong exec(T...)
(
Connection conn,
const(char[]) sql,
T args
)
if (T .length > 0 && !is(T[0] == Variant[]) && !is(T[0] == MySQLVal[]));
ulong exec
(
Connection conn,
const(char[]) sql,
taggedalgebraic .taggedalgebraic .TaggedAlgebraic!(mysql.types._MYTYPE)[] args
) @safe;
ulong exec
(
Connection conn,
ref SafePrepared prepared
) @safe;
ulong exec(T...)
(
Connection conn,
ref Prepared prepared,
T args
)
if (T .length > 0 && !is(T[0] == Variant[]) && !is(T[0] == MySQLVal[]));
ulong exec
(
Connection conn,
ref SafePrepared prepared,
taggedalgebraic .taggedalgebraic .TaggedAlgebraic!(mysql.types._MYTYPE)[] args
) @safe;
This method is intended for commands such as which do not produce a result set
(otherwise, use one of the query
functions instead.) If the SQL command does
produces a result set (such as SELECT), MYXResultRecieved
will be thrown.
If args
is supplied, the sql string will automatically be used as a prepared
statement. Prepared statements are automatically cached by mysql-native,
so there's no performance penalty for using this multiple times for the
same statement instead of manually preparing a statement.
If args
and prepared
are both provided, args
will be used,
and any arguments that are already set in the prepared statement
will automatically be replaced with args
(note, just like calling
SafePrepared
, this will also remove all
SafeParameterSpecialization
that may have been applied).
Only use the const(char[]) sql
overload that doesn't take args
when you are not going to be using the same
command repeatedly and you are CERTAIN all the data you're sending is properly
escaped. Otherwise, consider using overload that takes a Prepared
.
If you need to use any SafeParameterSpecialization
, use
prepare
to manually create a
SafePrepared
, and set your parameter specializations using
SafePrepared
or
SafePrepared
.
Type Mappings
See the MySQL/D Type Mappings tables
Parameters
Name | Description |
---|---|
conn | An open Connection to the database. |
sql | The SQL command to be run. |
prepared | The prepared statement to be run. |
args | The arguments to be passed in the SafePrepared . |
Returns
The number of rows affected.
Example
auto myInt = 7;
auto rowsAffected = myConnection .exec("INSERT INTO `myTable` (`a`) VALUES (?)", myInt);