SQLite 中的動態表建立
在 SQLite 中,不直接支援變數表名稱。不過,有一些技術可以在確保安全性的同時達到類似的效果。
避免建構子
由於存在 SQL 風險,不建議使用字串建構子建立表名註入攻擊。在建構表名稱之前,請考慮使用清理函數從變數中刪除特殊字元。
清理函數
下面提供了清理函數的範例:
def scrub(table_name): return ''.join(chr for chr in table_name if chr.isalnum())
此函數從表名稱中過濾掉非字母數字字元。
用法
要建立具有動態確定名稱的表,您可以使用以下方法:
table_name = scrub(self.name) cursor.execute("CREATE TABLE StarFrame" + table_name + " (etc etc)")
這可以確保表名免受潛在註入攻擊。
以上是如何在 SQLite 中安全地建立動態表名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!