我已经通过使用官方的Basho riak-php-client成功地在我的riak数据库和localhost之间建立了连接:
https://github.com/basho/riak-php-client
在我的Riak数据库中,我有很多密钥与JSON数据一起存储。有没有简单有效的方法在本地主机上显示文本数据?到目前为止,我已经能够使用以下代码显示简单的其他值:
<?php
require_once('src/Basho/Riak/Riak.php');
require_once('src/Basho/Riak/Bucket.php');
require_once('src/Basho/Riak/Exception.php');
require_once('src/Basho/Riak/Link.php');
require_once('src/Basho/Riak/MapReduce.php');
require_once('src/Basho/Riak/Object.php');
require_once('src/Basho/Riak/StringIO.php');
require_once('src/Basho/Riak/Utils.php');
require_once('src/Basho/Riak/Link/Phase.php');
require_once('src/Basho/Riak/MapReduce/Phase.php');
$client = new Basho'Riak'Riak('172.31.42.72', 10018);
$myBucket = $client->bucket('test');
$myBucket1 = $client->bucket('world');
$val1 = 1;
$obj1 = $myBucket-> newObject('one', $val1);
$obj1->store();
$val2 = 'two';
$obj2 = $myBucket->newObject('two', $val2);
$obj2->store();
$val3 = array('myValue' => 3);
$obj3 = $myBucket->newObject('three', $val3);
$obj3->store();
$fetched1 = $myBucket->get('one');
$fetched2 = $myBucket->get('two');
$fetched3 = $myBucket->get('three');
$fetched4 = $myBucket1->get('542660947589230592');
assert($val1 == $fetched1->getData());
assert($val2 == $fetched2->getData());
assert($val3 == $fetched3->getData());
$obj = json_decode(fetched4);
print $obj->{'<<"text">>'};
?>
在此代码中,我还尝试显示变量 $fetched 4 中的 JSON 数据,并从存储桶"world"查询,但是当我尝试使用以下两行代码显示它时:
$obj = json_decode(fetched4);
print $obj->{'<<"text">>'};
不显示任何内容。有什么想法吗?
编辑
以下是 apache2 错误日志,尽管我不确定它们是否完全是最新的:
[2014 年 12 月 10 日星期三 14:05:20.894220] [:错误] [pid 4610] [客户端 129.16.723.16:44285] PHP 注意:使用未定义的常量 fetched4 - 假设 'fetched4' 在/var/www/html/index.php 第 52 行
[14:05:20.894240 2014] [:错误] [PID 4610] [客户端 129.16.723.16:44285] PHP 通知:尝试获取非对象的属性 /var/www/html/index.php 在第 53 行[12 月 10 日星期三
试试...
$obj = json_decode($fetched4);
除非在此处输入示例时是拼写错误,否则您将错过$fetched4
$
。
日志条目PHP Notice: Use of undefined constant fetched4 - assumed 'fetched4'
指出这是一个真正的问题,而不仅仅是您在这里做的事情。