gpt4 book ai didi

cassandra - 在 Cassandra 中插入时使用变量

转载 作者:行者123 更新时间:2023-12-01 19:20:38 24 4
gpt4 key购买 nike

我是 Cassandra 新手,正在尝试用 C# 编写一个用于插入和删除的程序。我想知道是否有办法可以在插入命令中使用变量而不是值?当我尝试以下操作时:

string s1="A";
string s2="B";
session.Execute("insert into users (lastname, firstname) values (s1,s2)");

发生错误:Cassandra.dll 中发生“Cassandra.SyntaxError”类型的第一次机会异常

最佳答案

假设您正在使用 DataStax CQL3 C# 驱动程序,则最好的方法是使用准备好的语句。设置完成后,您可以绑定(bind)变量并执行,如下所示:

string strCQL = "INSERT INTO users (lastname, firstname) VALUES (?,?)";
string s1 = "A";
string s2 = "B";

PreparedStatement preparedStatement = session.Prepare(strCQL);
BoundStatement boundStatement = preparedStatement.Bind(s1,s2);
session.Execute(boundStatement);

请不要使用 string.Format(或字符串连接)构建 CQL 语句并执行它。 Cassandra/CQL 也可能受到 injection-based attacks 的约束,因此您应该始终使用准备好的语句并将变量绑定(bind)到它。另外,如果您有一个要运行多次的语句(例如:在循环内),则可以通过在循环之前准备它并在循环内绑定(bind)/执行来获得更好的性能。

关于cassandra - 在 Cassandra 中插入时使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26681381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com