public bool Update(string table, MySQLData[] data, MySQLCondition[] conditions = null, bool ensure = false) { if (IsDisposed || !Connected || String.IsNullOrWhiteSpace(table) || data == null || data.Length == 0) { return(false); } var query = new StringBuilder(); query.AppendFormat(ensure ? "REPLACE INTO `{0}` SET" : "UPDATE `{0}` SET", table); for (var x = 0; x < data.Length; x++) { query.AppendFormat("`{0}` = '{1}'", data[x].Key, MySQL.Escape(data[x].ValueString)); if (x + 1 < data.Length) { query.Append(", "); } } if (!ensure) { AppendWhere(query, conditions); } return(NonQuery(query.ToString()) > 0); }
public bool Insert(string table, MySQLData[] data, bool replace = false) { if (IsDisposed || !Connected || String.IsNullOrWhiteSpace(table) || data == null || data.Length == 0) { return(false); } var query = new StringBuilder(); query.AppendFormat("{0} INTO `{1}` ", replace ? "REPLACE" : "INSERT", table); string[] keys = new string[data.Length], vals = new string[data.Length]; for (var x = 0; x < data.Length; x++) { keys[x] = data[x].Key; vals[x] = data[x].Value != null ? data[x].ValueString : String.Empty; vals[x] = MySQL.Escape(vals[x]); } query.AppendFormat("(`{0}`)", ((keys.Length > 1) ? String.Join("`,`", keys) : keys[0])); query.Append(" VALUES "); query.AppendFormat("('{0}')", ((vals.Length > 1) ? String.Join("','", vals) : vals[0])); return(NonQuery(query.ToString()) > 0); }
public int InsertMany(string table, MySQLData[][] batch, bool replace = false) { if (IsDisposed || !Connected || String.IsNullOrWhiteSpace(table) || batch == null || batch.Length == 0) { return(-1); } var query = new StringBuilder(); query.AppendFormat("{0} INTO `{1}` ", replace ? "REPLACE" : "INSERT", table); var defined = false; var empty = true; foreach (var data in batch.Where(data => data != null && data.Length > 0)) { string[] keys = new string[data.Length], vals = new string[data.Length]; for (var x = 0; x < data.Length; x++) { keys[x] = data[x].Key; vals[x] = data[x].Value != null ? data[x].Value.ToString() : String.Empty; vals[x] = MySQL.Escape(vals[x]); } if (!defined) { query.AppendFormat("(`{0}`)", ((keys.Length > 1) ? String.Join("`,`", keys) : keys[0])); query.Append(" VALUES "); defined = true; } query.AppendFormat( "{0}('{1}')", !empty ? ", " : String.Empty, ((vals.Length > 1) ? String.Join("','", vals) : vals[0])); empty = false; } return(NonQuery(query.ToString())); }
private static void AppendWhere(StringBuilder query, params MySQLCondition[] conditions) { if (query == null || query.Length == 0 || conditions == null || conditions.Length == 0) { return; } query.Append(" WHERE "); for (var x = 0; x < conditions.Length; x++) { if (x > 0) { query.AppendFormat(" {0} ", conditions[x].QueryJoin); } query.AppendFormat( "`{0}` {1} '{2}'", conditions[x].Key, conditions[x].GetOperation(), MySQL.Escape(conditions[x].ValueString)); } }