在预准备语句中绑定十进制值不会找到该行 .
我可以证明该行存在,我可以访问它:
//WORKS
$pstatement = $session->prepare(
'SELECT * FROM mytable WHERE acc_id = 123456789012345678 '
);
$result = $session->execute($pstatement);
foreach ($result as $row) {
print_r($row);
}
此打印将正确显示如下行:
Array
(
[acc_id] => Cassandra\Decimal Object
(
[type] => Cassandra\Type\Scalar Object
(
[name] => decimal
)
[value] => 123456789012345678
[scale] => 0
)
...
但是,使用预准备语句时找不到行:
//DOES NOT WORK
$pstatement = $session->prepare(
'SELECT * FROM mytable WHERE acc_id = ?'
);
$params = array(
'arguments' => array( new Cassandra\Decimal(123456789012345678) )
);
$result = $session->execute($pstatement, $params);
foreach ($result as $row) {
print_r($row);
}
这将不会返回该行(也没有错误) . acc_id在cassandra中定义为十进制和PK .
这是Datastax驱动程序中的错误还是我遗漏了什么?