我正在尝试使用php连接documentDB Azure,但我没有让它工作。现在我正在使用code given here,但即使这样也行不通。我可以连接到documentDB帐户,但问题是我无法在我的帐户中选择数据库。这是我正在使用的selectDB函数
public function selectDB($db_name)
{
$rid_db = false;
$object = json_decode($this->listDatabases());
$db_list = $object->Databases;
foreach ($db_list as $value)
{
if ($value->id === $db_name)
{
$rid_db = $value->_rid;
}
}
if (!$rid_db)
{
$object = json_decode($this->createDatabase('{"id":"' . $db_name . '"}'));
$rid_db = $object->_rid;
}
if ($rid_db)
{
return new DocumentDBDatabase($this, $rid_db);
}
else
{
return false;
}
}
我尝试调试它并发现listDatabases()函数不起作用(不选择帐户中的数据库)这是listDatabase()
函数:
public function listDatabases()
{
$headers = $this->getAuthHeaders('GET', 'dbs', '');
$headers[] = 'Content-Length:0';
$options = array(
CURLOPT_HTTPHEADER => $headers,
CURLOPT_HTTPGET => true,
);
return $this->request("/dbs", $options);
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
关于您的问题,您可以在解决卷曲问题所需的var_dump(curl_error($curl));
request
函数中添加phpdocumentdb.php
。
如果您在本地或某些开发环境中进行开发,则可能会出现SSL证书问题。卷曲错误可能会输出消息: SSL证书问题:无法获取本地颁发者证书。
对于开发,您可以在curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
的{{1}}函数中添加句子request
,以绕过SSL验证。
如果您在prod env中,则应在PHP运行时中创建SSL证书。有关详细信息,请参阅https://blogs.msdn.microsoft.com/azureossds/2015/06/12/verify-peer-certificate-from-php-curl-for-azure-apps/。