codeigniter — php cloudant curl жалуется, что БД уже существует

У меня есть запрос curl к облачной базе данных, чтобы добавить новый документ. Однако всякий раз, когда я запускаю его, он жалуется, что база данных уже существует, тогда мне приходится переименовывать БД в URL. Это, однако, только создает новую пустую базу данных. Что не так с моим запросом curl из следующего?

Это код, который я использую:

credentials = base64_encode($login.':'.$password);
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => array(
'Authorization: Basic '.$credentials,
"content-type: application/json"),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
if($this->debug === 1) {
echo $err;
var_dump($info);
}
return false;
} else {
return $response;
}

И это код, который использует его:

$journey_data = array(
"name" => "name",
"TEST" => "TESTIN TED");

$this->cloudent_controller = modules::load('cloudent_integration/cloudent_integration');
$url = "https://test.cloudant.com/fubar";
$result = $this->cloudent_controller->createDocument($url, json_encode($journey_data));
var_dump($result);
die;

Да, я использую воспламенитель кода и шаблон hmvc, но это не важные детали, так как я получаю ответ.

Отклик :

string(95) "{"error":"file_exists","reason":"The database could not be created, the file already exists."} "

0

Решение

Чтобы создать новый документ на сервере couchDB, вам нужно отправить запрос PUT или POST на URL-адрес, где вы хотите сохранить документ, это означает, что вам нужно указать базу данных и имя документа в URL-адресе:

https://test.cloudant.com/fubar/doc_id

Если вы отправляете запрос PUT или POST напрямую в базу данных, как я думаю, вы просите couchDB создать эту базу данных.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]