diff --git a/src/db_query.c b/src/db_query.c index dc3e860..1c786a1 100644 --- a/src/db_query.c +++ b/src/db_query.c @@ -504,7 +504,7 @@ int64_t addIdMap(struct stored_conn_t *sconn, const char *table, size_t table_le strbld_str(sb, "INSERT INTO ", 12); escapeTableName_sb(sb, table, table_len); - strbld_str(sb, table, 0); + strbld_char(sb, ' '); strbld_char(sb, '('); escapeColumnName_sb(sb, 0, 0, primary_col, 0); strbld_char(sb, ','); @@ -528,7 +528,7 @@ int64_t addIdMap(struct stored_conn_t *sconn, const char *table, size_t table_le return -1; } - return (qry_ret > 0); + return qry_ret == 0; } int64_t removeIdMap(struct stored_conn_t *sconn, const char *table, size_t table_len, const char *primary_col, const char *map_col, diff --git a/src/db_value.c b/src/db_value.c index 45c5429..feb6c1a 100644 --- a/src/db_value.c +++ b/src/db_value.c @@ -77,12 +77,14 @@ void db_value_sbva(str_builder *sb, e_column_type type, uint32_t n_args, va_list return; } - if (n_args == 1) { - tmp_len = strlen(tmp_str); - } else { + if (n_args == 2) { tmp_len = va_arg(args, size_t); } + if (n_args == 1 || (tmp_str != 0 && tmp_len == 0)) { + tmp_len = strlen(tmp_str); + } + esc_str = (char *)malloc(tmp_len * 2 + 1 + 2); if (esc_str == 0) { @@ -126,7 +128,7 @@ void db_value_sbva(str_builder *sb, e_column_type type, uint32_t n_args, va_list esc_str[1] = 'x'; esc_len = mysql_hex_string(esc_str + 2, tmp_str, tmp_len); - strbld_str(sb, esc_str, esc_len); + strbld_str(sb, esc_str, esc_len + 2); free(esc_str); return;