2

我正在使用 PHP 来尝试使用Google Cloud Spanner。我已经完成了gCloud设置和所有操作,这是正确的。现在我需要通过PHP建立连接以对 Spanner 中的数据库进行 CRUD,但下面的代码总是返回错误:

PHP 致命错误:第 129 行 /xxx/xxxx/www/vendor/google/cloud-spanner/Connection/Grpc.php 中未定义的常量 'Grpc\STATUS_UNKNOWN'

我的代码是:

<?php
require 'vendor/autoload.php';

use Google\Cloud\Spanner\SpannerClient;

/* Error start here */
$spanner = new SpannerClient([
    'projectId' => 'my-project-id'
]);

$db = $spanner->connect('instance', 'database');

$userQuery = $db->execute('SELECT * FROM usuario WHERE login = @login', [
    'parameters' => [
        'login' => 'devteam'
    ]
]);

$user = $userQuery->rows()->current();

echo 'Hello ' . $user['login'];

我在作曲家中使用的要求是:

"require": {
        "google/cloud": "^0.32.1",
        "google/cloud-spanner": "^0.2.2"
}

我注意到,如果我通过浏览器输入,上面出现的错误会继续出现。如果我在终端上运行命令php teste.php,它会正确运行脚本,即终端工作而浏览器不工作。

4

3 回答 3

2

Google Cloud PHP 的 spanner 客户端仅支持 gRPC。这意味着要使用它,您需要安装 gRPC PHP 扩展:

pecl install grpc 

完成后,将google/proto-client-php和添加google/gax到您的 composer.json 并运行composer update. 完成此操作后,错误将得到解决。

于 2017-06-07T21:09:47.183 回答
1

对于那些想要更详细说明的人,请参阅此页面以安装和启用 gRPC for PHP!

于 2017-06-13T00:50:28.440 回答
0

由于您提到它适用于 CLI 但不适用于浏览器,我可以说您需要在您的 php Web 服务器配置上启用 grpc 扩展。

例如添加 extension=grpc.so到您的 /etc/php/5.6/apache2/php.ini

于 2017-07-07T20:16:08.860 回答