【问题标题】:Using variables to insert使用变量插入
【发布时间】:2017-01-11 09:36:40
【问题描述】:

我是 cassandra 的新手,并尝试使用 Python 插入 Cassandra 键空间。我有一个用 cql 创建的表 mytablecassandra:

cqlsh:mykeyspace>>CREATE TABLE mytablecassandra(user text PRIMARY KEY, friendlist list<text>);

在这里我读了一个文本文件并有变量 auserafriend

这些变量的值类似于

auser = 'ABC'afriend = ['DEF','GHI','JKL']

现在我想在我的 Cassandra 表中插入这些变量

from cassandra.cluster import Cluster
cluster = Cluster()

session = cluster.connect('mykeyspace')
CQLString = """INSERT INTO mytablecassandra(user,friendlist) VALUES (auser, afriend)"""
session.execute(CQLString);

然后得到错误

ErrorMessage code=2000 [CQL 查询中的语法错误] 不可行 在输入')'处替代

【问题讨论】:

    标签: python cassandra insert


    【解决方案1】:

    您的字符串不会以这种方式扩展,也不是真正推荐的方式(这种方式经常存在 SQL 注入攻击)。相反,你应该让你的查询字符串有像

    这样的值的占位符
    CQLString = "INSERT INTO mytablecassandra (user, friendlist) VALUES (%s,%s)"
    

    然后执行它并传递类似的值

    session.execute(CQLString, (auser,afriend))
    

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 2017-07-23
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多