gpt4 book ai didi

php - Cassandra 和 PDO

转载 作者:搜寻专家 更新时间:2023-10-31 21:11:32 24 4
gpt4 key购买 nike

我已经安装了 YACassandraPDO PHP 的驱动程序。我有一个模式,其中一个表有一个 average DOUBLE 字段并且使用 CQL3/Casssandra 2.0。

并尝试了以下操作:

$stmt = $this->connection->prepare('INSERT INTO a (average) VALUES (:average)');
$stmt->bindValue(':average', 2.2);
$stmt->execute();

这会导致 CQLSTATE[HY000] [2] double 类型平均值的无效字符串常量 (2.2)

我应该如何让它发挥作用?

看到 PDO 没有任何方式指定 float / double 类型(docs),它开始看起来像 PDO 是不行的,除非我希望我的字段类型都是 TEXT 类型,其中turn 有其他不良影响。

最佳答案

它似乎默认需要一个字符串,正如您已经发现的那样。根据 github 上的文档,诚然有点违反直觉,您也需要将 PARAM_INT 用于 double。所以试试这个:

$stmt->bindValue(':average', 2.2, PDO::PARAM_INT);
or maybe even
$stmt->bindValue(':average', "2.2", PDO::PARAM_INT);

类型定义如下:

text        PDO::PARAM_STR 
blob PDO::PARAM_STR
varchar PDO::PARAM_STR
uuid PDO::PARAM_INT
int PDO::PARAM_INT
bigint PDO::PARAM_INT
float PDO::PARAM_INT
double PDO::PARAM_INT
decimal PDO::PARAM_INT

See the relevant "binding" section in the driver's documentation on github获取更多信息。

希望这真的有效。我没有正在运行的 php 测试环境来测试它。

关于php - Cassandra 和 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18714417/

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