我正在使用 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)}")
在您的代码中,您设置了参数值 1,这会导致“参数索引超出范围”错误,如错误代码中所述。将此值从 1 更改为 0,希望您的问题能够得到解决。