当前位置: 首页 > 知识库问答 >
问题:

Datastax Cassandra PHP驱动程序:在准备好的语句中使用timeuuid时出现“无效值类型”异常

唐茂实
2023-03-14

我正在尝试使用timeuuid值执行准备好的语句,并获得“无效值类型”异常。

下面是代码:

$builder = \Cassandra::cluster();
$cluster = $builder->withContactPoints('127.0.0.1')
            ->build();

$session = $cluster->connect();
$preparedStatement = $session->prepare("SELECT * FROM test.timeuuid_test WHERE account_id = :accId and item_time_uid >= minTimeuuid(:minTime);");
$options = new ExecutionOptions([
            'arguments' => [
                'accId' => 1234,
                'minTime' => new \Cassandra\Timeuuid(1458118516)
            ]
        ]);
$session->execute($preparedStatement, $options);

我得到以下异常:

"Cassandra\Exception\InvalidArgumentException:无效的值类型"

以下是表格方案:

CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 };

CREATE TABLE test.timeuuid_test (
  account_id int,
  item_time_uid timeuuid,
  PRIMARY KEY ((account_id), item_time_uid)
) WITH CLUSTERING ORDER BY (item_time_uid DESC);

我做错了什么?

我正在使用PECL卡桑德拉1.1.0和卡桑德拉2.0.15:

已安装与cassandra相关的软件包:cassandra20-2.0.15-1.noarch cassandra-cpp-driver-2.2.2-1.el6.x86_64 cassandra-cpp-drivers-devel-2.2.2-1.el6.x86_

共有1个答案

易宏阔
2023-03-14

您将错误的类型绑定到minTimeminTimeUuid接受timemark参数,而不是timeuuid

 类似资料:
  • 我是卡珊德拉的新成员。我正在使用Datastax的Cassandra PHP驱动程序。我试图创建具有多个插入的批处理语句。给定表格模型: 我尝试通过两种方式插入以下值: 这会产生错误: 与此同时,我尝试了一种更直接的方法,没有准备好声明: 这样一切都正常,但肯定会慢很多。也许有人能解释一下我正在做的准备好的陈述方法有什么问题? 提前谢谢你。

  • 问题内容: 在mysqli准备好的语句中,NULL变成’‘(对于字符串)或0(对于整数)。我想将其存储为真正的NULL。有什么办法吗? 问题答案: 我知道这是一个旧线程,但是可以将真实的NULL值绑定到准备好的语句(请阅读this)。 实际上,您可以使用mysqli_bind_parameter将NULL值传递给数据库。只需创建一个变量并将NULL值(请参见手册页)存储到该变量并将其绑定即可。无论

  • 我在使用DataStax php驱动程序1.0.0-rc和Cassandra 2.2.3的Prepared Statements时遇到了一个奇怪的错误。我在这一行遇到了一条异常: 我看到了这个错误: 下面是用于与Cassandra通信的类存根: 如果我将Simple Statemetn与标准select查询一起使用,它会起作用。 有什么建议吗?

  • 用于cassandra的Datastax Java驱动程序(cassandra-driver-core 2.0.2)支持PreparedStatements以及QueryBuilder API。使用其中一种比另一种有什么特别的优势吗?缺点? 文档:http://www.datastax.com/documentation/developer/java-driver/2.0/common/drive

  • 我正在尝试使用准备好的语句和TABLE_CATALOG和table_schema的参数来选择默认模式'public'中的所有表。当我创建一个准备好的语句时,系统会返回一个错误,这没有任何意义。如果我指定了TABLE_CATALOG而不指定TABLE_SCHEMA,它可以很好地工作。另外,如果指定TABLE_SCHEMA而不指定TABLE_CATALOG,它也可以正常工作。我是不是做错什么了? 线程

  • 将Camel 2.13.1与Spring 2.7.11一起使用,并在尝试使用SQL组件运行更新查询时收到SQL异常。下面是如何将更新查询添加到路由中,并使用主体中的java.util.Map将输入参数值传递给该语句。 主要问题:如果我在准备好的语句中只有一个输入参数,那么它工作得很好…如果我有以下更新查询中的多个,那么它将失败,出现sql异常