【问题标题】:Datastax Cassandra PHP Driver : How to know CQL INSERT,UPDATE,DELETE are SuccessfulDatastax Cassandra PHP 驱动程序:如何知道 CQL INSERT、UPDATE、DELETE 是否成功
【发布时间】:2016-10-19 03:29:06
【问题描述】:

我正在使用 Datastax php-driver 在我的 cassandra 上运行 CQL。我使用 INSERT、UPDATE、DELETE 操作。

下面是我为插入运行的示例代码

        $cluster = Cassandra::cluster()
                ->withContactPoints('54.XX.XX.XX', '54.XX.XX.XX','54.XX.XX.XX')
                ->withDefaultConsistency(4)
                ->build();

        $session = $cluster->connect('Sample_Key_Space');
        $statement = new Cassandra\SimpleStatement('insert_query');
        $result = $session->execute($statement);

我的问题是,如何知道插入(或更新、删除)是否成功。我已阅读 Datastax 文档并知道 $session->execute 返回 Cassandra\Rows,使用此 Rows 对象“如何判断我的 CQL 是成功还是失败? ”。

非常感谢任何帮助或输入...

更新:

根据答案,工作代码示例

try {
$cluster = Cassandra::cluster()
            ->withContactPoints('54.XX.XX.XX')
            ->withDefaultConsistency(4)
            ->build();

    $session = $cluster->connect('school');

    $statement = new Cassandra\SimpleStatement("UPDATE1 activities SET activity_by = 'nagarajan' WHERE master_id = 12 AND activity_type='Hello' AND activity_id=10");
$result = $session->execute($statement);
return true;
} catch (Cassandra\Exception $e $e) {
    return 'failed';
}

【问题讨论】:

    标签: cassandra datastax-php-driver


    【解决方案1】:

    try catch包围执行方法。 如果查询失败,execute 方法会抛出异常,您可以在应用程序中检查。

    欲了解更多详情,请访问 Session.Execute.

    【讨论】:

    • 我试过了,比如 try { ....execution..... } catch (Exception $e){ ..... error result ....}。当我为 UPDATE123 SET ... 而不是 UPDATE SET ... 执行错误的 sql 语句时,catch 语句不起作用?我做错了什么?..请在我的问题中查看我的更新,我给出了完整的代码
    • 你可以试试catch (Cassandra::Exception $e)
    • 我终于通过 catch (Cassandra\Exception $e) 得到它
    猜你喜欢
    • 2016-11-14
    • 2014-02-28
    • 2016-02-27
    • 2017-05-25
    • 2016-11-29
    • 2017-09-09
    • 1970-01-01
    • 2017-08-04
    • 2016-03-16
    相关资源
    最近更新 更多