gpt4 book ai didi

mysql - 在VB MySQL编程中动态提供列名

转载 作者:行者123 更新时间:2023-11-29 23:46:59 24 4
gpt4 key购买 nike

所以我的代码中有这个 MySQL 查询:

Sub MySub(column_name As String)
Dim sqlQueryString As String = "SELECT * FROM foo WHERE " & column_name & " IS NULL;"

想象我的 SQL 表由两列组成:column_A 和column_B。

我想传入“column_A”或“column_B”作为方法参数,但这让我对 SQL 注入(inject)非常开放。我考虑使用 .Parameters.Add 或 .Parameters.AddWithValue 传递值,但这会导致将“column_name”转换为字符串值而不是正确的列名称(因为它将值封装在引号中,将其转换为字符串) )。我该如何解决这个问题?

最佳答案

您可以首先使用 INFORMATION_SCHEMA.COLUMNS 选择此表中的实际列列表,然后仅在该列有效时进行替换。

即此链接Get table column names in mysql?

运行此命令以获取表中的列列表

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'foo'

然后比较应用程序中 SQL 注入(inject)不会造成损害的字符串。如果该列确实存在,则将其子化,否则退出子化

关于mysql - 在VB MySQL编程中动态提供列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25860062/

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