我正在为使用Apache Cassandra的应用程序使用PHP PDO驱动程序,但我无法获取所需的信息。有什么明显错的吗?
$db = new PDO('cassandra:host=localhost;port=9160');
$db->exec("USE project");
$st = $db->prepare("SELECT fname FROM users WHERE email=:em;");
$st->bindValue(':em', 'email1@gmail.com', PDO::PARAM_STR);
$st->execute();
print_r($st->fetch(PDO::FETCH_ASSOC));
窗口上没有任何内容。使用电子邮件列作为主键创建表用户。我在应用程序中向users表插入和更新信息时没有遇到任何问题,但仍无法弄清楚如何成功获取单个值。类似地,当我使用一些查询fetchAll()时,我可以将数组(行)打印到屏幕但不能索引它们以获取特定值。也许有一些我失踪的cassandra的细节?
答案 0 :(得分:1)
执行以下操作:
$db = new PDO('cassandra:host=localhost;port=9160');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$db->exec("USE project");
$st = $db->prepare("SELECT fname FROM users WHERE email=:em;");
if ($st == false) {
print_r($db->errorInfo())
exit;
}
if ($st->bindValue(':em', 'email1@gmail.com', PDO::PARAM_STR) == false) {
print_r($db->errorInfo())
exit;
}
if ($st->execute() == false) {
print_r($db->errorInfo())
exit;
}
print_r($st->fetch(PDO::FETCH_ASSOC));
答案 1 :(得分:0)
我有类似的问题。我用了YACassandraPDO。不幸的是,当它与php 5.4一起使用时,我得到错误502.决定编写他或她的库,允许使用Cassandra二进制协议而不会遇到类似的问题。
将来,我打算加快速度。
也许it will help you。语法如PDO。