python-3.x - 如何在 python 3.7 sqlite3 查询中插入 row_number 变量?
问题描述
我有一个如下所示的 python-3.7 函数。我的 sqlite3 表有 10 列。我想按行号从表中获取数据条目。但是 row_number 是一个变量而不是一个常数。如何在 python 3.7 sqlite3 查询中插入 row_number 变量?问题出在 rowid = 1 是常量之后的代码中。我不想要那个。我希望它是可变的。
def readSqliteTable(row_number):
try:
sqliteConnection = sqlite3.connect('SQLite_Python.db');
cursor = sqliteConnection.cursor();
print("Connected to SQLite");
sqlite_select_query = """SELECT * FROM SqliteDb_Addresser WHERE rowid = 1""";
# How do I insert row_number variable in the above sqlite3 query?
cursor.execute(sqlite_select_query);
records = cursor.fetchall();
print("Total rows are: ", len(records));
print("Printing each row");
for row in records:
aTuple = (row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[8], row[9], row[10]);
cursor.close();
return aTuple;
except sqlite3.Error as error:
print("Failed to read data from sqlite table", error);
finally:
if (sqliteConnection):
sqliteConnection.close();
print("The SQLite connection is closed");
return -1;
解决方案
这就是你所说的参数化查询,解释在这里。长话短说,你想要这样的东西:
sqlite_select_query = """SELECT * FROM SqliteDb_Addresser WHERE rowid = ?""";
cursor.execute(sqlite_select_query, variable_row_id);
但是,使用诸如 SQL Alchemy 之类的 ORM 是一种更愉快的体验,请考虑尝试一下。
推荐阅读
- android - Kotlin - 如何在 RecyclerView 中实现 AdMob 广告作为视图类型
- regex - .htaccess 将文件夹名称附加到 URL 的末尾
- android - 如何动态监控 Android 上的可用本机内存?
- image - 如何从主机上的编辑器编辑 Docker 容器中的文件?
- office-addins - Word 在 Windows 上不显示自定义加载项图标
- r - 如何将 countpct 和 binomCI 组合成相同的汇总统计量以用于 tableby 函数?
- javascript - 类型中缺少类型 { 错误 }
, 但在类型中是必需的 - Redux 特定问题 - go - 如何分发具有 C 依赖项的 Go 模块
- c# - 单元测试类中的依赖注入 IConfiguration
- android - 用于 Android 推送通知的动态 Firebase SenderID