如何使用Python客户端在GridDB中执行参数化查询?

问题描述 投票:0回答:1

我正在使用 GridDB Python 客户端与我的时间序列数据进行交互。我想执行参数化查询以防止 SQL 注入并有效处理动态值。 当我运行代码时,出现此错误:

[0] -1: Parameter index out of range

这是我正在使用的代码:

from griddb_python import griddb



# Initialize GridStore factory
factory = griddb.StoreFactory.get_instance()



try:
# Connect to the GridStore
gridstore = factory.get_store(
host='239.0.0.1',
port=31999,
cluster_name='defaultCluster',
username='admin',
password='admin'
)



# Get the container
container = gridstore.get_container("sensor_data")



# Create a parameterized query
query = container.query("SELECT * FROM sensor_data WHERE sensor_id = ?")



# Set the parameter value
query.set_parameter(1, 'sensor_123')



# Execute the query
rs = query.fetch()



# Process the result set
while rs.has_next():
data = http://rs.next()
print(data)



except griddb.GSException as e:
for i in range(e.get_error_stack_size()):
print(f"[{i}] {e.get_error_code(i)}: {e.get_message(i)}")
python database prepared-statement griddb
1个回答
0
投票

在您的代码中,您设置了参数值 1,这会导致“参数索引超出范围”错误,如错误代码中所述。将此值从 1 更改为 0,希望您的问题能够得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.