我正在使用PHP尝试使用 Google Cloud Spanner 。我已经完成了 gcloud 设置和所有内容,这是正确的。现在,我需要通过 php 进行连接,以对SPANNER中的数据库进行CRUD,但是下面的代码始终返回错误:
php致命错误:未定义的常数'grpc status_unknown'in /xxxxxx/www/vendor/google/cloud-panner/connection/grpc.php在线 129
我拥有的代码是:
<?php
require 'vendor/autoload.php';
use GoogleCloudSpannerSpannerClient;
/* 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 ,它可以正确运行脚本,即,终端工作和浏览器无。
Google Cloud PHP的Spanner客户端仅是GRPC。这意味着要使用它,您将需要安装GRPC PHP扩展名:
pecl install grpc
完成此操作后,将google/proto-client-php
和google/gax
添加到您的COMSER.JSON并运行composer update
。完成此操作后,将解决错误。
对于那些想要更多详细说明的人,请参阅此页面,以便为PHP安装和启用GRPC!
由于您提到它在CLI上工作,但在浏览器上不起作用,我可以说您需要在PHP Web服务器配置上启用GRPC扩展。
例如。添加 extension=grpc.so
到您的/etc/php/5.6/apache2/php.ini