1

PHPでN1QLを使用しようとしていました...この最初のものは機能しています:1)

$query = CouchbaseN1qlQuery::fromString("select count(*) from mybucket where type = 'user'");
$res = $myBucket->query($query);

出力:

array(1) {
  [0]=>
  object(stdClass)#3 (1) {
    ["$1"]=>
    int(58)
  }
}

2) 名前付きパラメーターに変更すると、失敗しました:

$query = CouchbaseN1qlQuery::fromString("select count(*) from mybucket where type = $type");
$res = $myBucket->query($query, ['type' => 'user']);

「PHP Notice: Undefined variable: type...」エラーが発生しました

PHPでN1QLに名前付きパラメータを使用するための正しい構文を教えてくれる人はいますか?

私のソファベースサーバーは4.1です

4

1 に答える 1

0

正しい軌道に乗っているようです。問題は$type、PHP 文字列で使用しているため、PHP プロセッサがそれを という名前の変数に置き換えようとすることですtype。N1QL 文字列を二重引用符ではなく単一引用符で囲んで、PHP インタープリターがこの種の文字列処理を試みないようにする必要があります。

また、Couchbase PHP SDK は、名前付きパラメーターを設定するための API を提供します。

$query = CouchbaseN1qlQuery::fromString('SELECT airportname FROM `travel-sample` WHERE city=$city AND type=$airport');
$query->namedParams(['city' => "Los Angeles", 'type' => "airport"]);

これは、名前付きパラメーターを提供するための推奨される方法です。

于 2016-03-30T16:04:52.400 に答える