Execute an SQL command or prepared statement, such as INSERT/UPDATE/CREATE/etc.
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), mysql.exceptions.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
mysql.impl.prepared.SafePrepared.setArgs, this will also remove all
mysql.impl.prepared.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 mysql.impl.prepared.SafeParameterSpecialization, use
mysql.safe.connection.prepare to manually create a
mysql.impl.prepared.SafePrepared, and set your parameter specializations using
mysql.impl.prepared.SafePrepared.setArg or
mysql.impl.prepared.SafePrepared.setArgs.
Execute an SQL command or prepared statement, such as INSERT/UPDATE/CREATE/etc.
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), mysql.exceptions.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 mysql.impl.prepared.SafePrepared.setArgs, this will also remove all mysql.impl.prepared.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 mysql.impl.prepared.SafeParameterSpecialization, use mysql.safe.connection.prepare to manually create a mysql.impl.prepared.SafePrepared, and set your parameter specializations using mysql.impl.prepared.SafePrepared.setArg or mysql.impl.prepared.SafePrepared.setArgs.