Хобрук: Ваш путь к мастерству в программировании

CouchDB с PHP (используя cURL), но как?

Во-первых, я хочу сказать вам, что меня не интересуют решения с PHP-фреймворками, такими как phpillow, php-on-couch, sag или похожий. Я хочу создать соединение с CouchDB исключительно с помощью cURL в файле PHP, как в примере ниже.

1-й пример:

<?php

 // Get a list of databases

 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, 'http://localhost:5984/_all_dbs');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'Accept: */*'
 ));

 $response = curl_exec($ch);

 curl_close($ch);

 echo $response;

?>

2-й пример:

 <?php

 // Get a document 'customer' from specific db 'customers' 

 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, 'http://localhost:5984/customers/customer');
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'Accept: */*'
 ));

 curl_setopt($ch, CURLOPT_USERPWD, 'myDBusername:myDBpass');

 $response = curl_exec($ch);

 curl_close($ch);

 echo $response;
?>

Что я знаю на данный момент? Я знаю, как создать CRUD (создать, прочитать, обновить, удалить) в файле PHP, используя исключительно cURL, приведенный выше пример. Я знаю, как использовать cURL из командной строки.

Что я прошу от вас? Я прошу вас о следующем:

  1. Как создать (сложный) поиск с использованием представлений CouchDB в файле PHP с cURL?

  2. Как создать сложный поиск, используя некоторую вводную информацию из HTML-формы?

09.12.2014

  • Могу я спросить, почему вы не хотите использовать существующую библиотеку? Это, безусловно, имело бы свои преимущества. 09.12.2014
  • Хотя я не эксперт по Couch, cURL используется для выполнения HTTP-запросов. Он не используется для создания представлений. Вам нужно каким-то образом отображать HTML из ваших CRUD-запросов. 09.12.2014
  • Я нахожусь на этапе обучения, и я хотел бы знать, что именно происходит, когда я делаю некоторые запросы. 09.12.2014
  • Я знаю, как создавать представления, reduce, reReduce и т. д., используя JavaScipt в CouchDB, но я не знаю, как извлекать данные из запросов и как делать запросы с помощью cURL в файле php. 09.12.2014
  • Я также знаю, как использовать представления в файле php, но я не знаю, как создавать из них некоторые запросы. 09.12.2014

Ответы:


1

Чтобы запросить представление в CouchDB, вы делаете запрос на получение по URL-адресу, например /$DB/_design/$DDOC/_view/$VIEW, где $DB — имя вашей базы данных, $DDOC — имя вашего проектного документа, а $VIEW — это имя вашего представления. Затем вы добавляете к URL-адресу различные параметры, такие как «key», «startkey», «endkey», «sort» и т. д., в зависимости от того, какую информацию вы хотите, чтобы представление возвращало.

См. документацию CouchDB по адресу http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options.

Чтобы сделать это с помощью cURL в PHP, все, что вам нужно сделать, это установить правильный URL-адрес запроса и метод:

curl_setopt($ch, CURLOPT_URL, "http://localhost:5984/$DB/_design/$DDOC/_view/$VIEW");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'myDBusername:myDBpass');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
09.12.2014
  • Спасибо за ваш быстрый ответ. Было бы хорошо, если бы вы привели конкретный пример. Например: `` 10.12.2014
  • Например: ` ‹?php // Получить документ «клиент» из определенной базы данных «клиенты» $ch = curl_init(); $запрос = ; curl_setopt($ch, CURLOPT_URL, 'localhost:5984/'.$query); ?› ` 10.12.2014
  • Я столкнулся с проблемой, когда я добавил «ключ = значение» в свой запрос и получил недопустимую ошибку json. После поиска сверху и снизу я обнаружил, что вам нужно добавить %22value%22 к запросу. это, кажется, работает. 08.10.2015
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..


    © 2024 hobruk.ru, Хобрук: Ваш путь к мастерству в программировании