gpt4 book ai didi

vb.net - 如何即时进行自定义查询?

转载 作者:行者123 更新时间:2023-12-03 18:20:22 25 4
gpt4 key购买 nike

我正在使用带有画廊的 sqlite 在 vb.net 上的数据库中工作,我想扩展搜索属性。
这是实际的查询字符串:

"SELECT images.*
FROM images
JOIN nodes
ON images.id = nodes.image_id
WHERE tag_id = (SELECT tags.id
FROM tags
WHERE tag = '" & tagname & "')
ORDER BY images." & sort & " " & order & ""
但它只能搜索一个描述性标记(标记名)并对图像进行排序,仅此而已。
我还想为图像 ext (table = images.ext) 或一个或多个参数过滤结果...例如:
如果用户搜索“cars ext:jpg width>500”,数据库将返回所有带有标签“cars”、扩展名为 jpg 且宽度大于 500 像素的图像。

最佳答案

首先,这段代码很危险。对 SQL Injection 开放攻击。您不应该只是将这样的字符串值附加到查询字符串中。相反,您应该使用参数化查询。

关于您的特定问题,您应该检查搜索的输入,并根据输入生成查询的特定部分,并在必要时对其进行参数化。

例如,如果您必须过滤扩展,那么您可以在包含 join 子句的变量中向扩展表添加一个连接,并在包含 where 子句的变量中的连接表上添加一个过滤器(以及适当的参数和参数值)。

然后,最后,将查询的各个部分(连同查询参数)连接在一起并执行它。

关于vb.net - 如何即时进行自定义查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com