Browse Source

Add Excluded Tags using SQLite parameters

Neil Burrows 5 years ago
parent
commit
554c967dd6
1 changed files with 19 additions and 3 deletions
  1. 19 3
      Emby.Server.Implementations/Data/SqliteItemRepository.cs

+ 19 - 3
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -4593,10 +4593,26 @@ namespace Emby.Server.Implementations.Data
 
             if (query.ExcludeInheritedTags.Length > 0)
             {
-                var tagValues = query.ExcludeInheritedTags.Select(i => "'" + GetCleanValue(i) + "'");
-                var tagValuesList = string.Join(",", tagValues);
+                var paramName = "@ExcludeInheritedTags";
 
-                whereClauses.Add("((select CleanValue from itemvalues where ItemId=Guid and Type=6 and cleanvalue in (" + tagValuesList + ")) is null)");
+                if (statement == null)
+                {
+                    List<string> tagParamList = new List<string>();
+
+                    for (int index = 0; index < query.ExcludeInheritedTags.Length; index++)
+                    {
+                        tagParamList.Add(paramName + index);
+                    }
+
+                    whereClauses.Add("((select CleanValue from itemvalues where ItemId=Guid and Type=6 and cleanvalue in (" + string.Join(",", tagParamList) + ")) is null)");
+                }
+                else
+                {
+                    for (int index = 0; index < query.ExcludeInheritedTags.Length; index++)
+                    {
+                        statement.TryBind(paramName + index, GetCleanValue(query.ExcludeInheritedTags[0]));
+                    }
+                }
             }
 
             if (query.SeriesStatuses.Length > 0)