Пример #1
0
        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);
        }
Пример #2
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);
        }
Пример #3
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()));
        }
Пример #4
0
        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));
            }
        }