簡體   English   中英

通過php查詢Cassandra

[英]Querying Cassandra through php

我正在嘗試通過PHP腳本從Cassandra數據庫執行SELECT查詢。
連接成功通過php。 這是查詢:

$session  = $cluster->connect($keyspace);    
$result = $session->execute("SELECT * FROM twitter.tweets_by_author WHERE author= 'John Doe'")

問題1
我將通過HTML表單獲取作者姓名,讓變量為author_name 如何在WHERE子句中傳遞author_name

我努力了:

$result = $session->execute("SELECT * FROM twitter.tweets_by_author WHERE author= \%s\",author_name);

但這是行不通的,這很可能是由於WHERE子句中=之后的值必須以單個反斜杠''開頭,以使其成為有效的cassandra查詢。

此外,我想打印結果,如下所示:

printf("  \"%s\" \"%s\" \"%s\" \"%s\" \"%s\" \n  ", $row['tid'],$row['tweet_text'], $row['author_id'], $row['location'], $row['lang']);

問題2
由於HTML將合並額外的空格,我如何根據自己的意願打印空格?

僅回答Q1(我不是HTML專家)。 您最好使用文檔中介紹的所謂的預備查詢。 像這樣:

$prepared = $session->prepare(""SELECT * FROM twitter.tweets_by_author WHERE author= ?")
$result = $session->execute($prepared, 
      array('arguments' => array('author' => author_name)))

准備好的查詢的優點之一是,它們在服務器上解析一次,然后客戶端僅發送占位符( ?標記)的數據,而不發送完整查詢。 這極大地提高了性能。 但是您需要將准備好的查詢存儲在某個地方,因此它將被多個請求重用-它需要服務器之間的額外往返。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM