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

Подключиться к базе данных Sharepoint через PHP

Я не знаком с Sharepoint. Я хотел бы запросить или прочитать базу данных Sharepoint с помощью PHP.

Как я могу это сделать?

Спасибо заранее. Любая помощь приветствуется.



Ответы:


1

Вам следует подумать об использовании Camelot PHP Tools для SharePoint, это хорошо документированная PHP-среда для формата Camelot XML, специально созданная для списков SharePoint.

Документация и загрузка

Вам также понадобится Camelot SharePoint Integration Toolkit, http://camelottoolkit.codeplex.com/ и Camelot .NET Connector (http: //www.bendsoft.com/net-sharepoint-connector/).

Установите коннектор в коробке, которая может подключиться к серверу SharePoint, это может быть тот же сервер, что и сервер SharePoint, затем установите Integration Toolkit на том же сервере, что и коннектор. Настройте службу интеграции, включенную в набор инструментов интеграции (следуйте инструкциям), и все готово. На веб-сайтах также есть несколько обучающих видео.

Плюсы использования этого заключаются в том, что вы сможете общаться со списками и библиотеками SharePoint через API, используя общие запросы SQL, базовая база данных mssql никогда не используется.

Выбор данных из SharePoint с помощью SQL

$SharePointQuery = new SharePointQuery(array(
    'sql' => "SELECT * FROM Tasks WHERE ID > 10",
    'connection_name' => 'SharePointConnection1'
));

Выбор данных из SharePoint по списку и имени представления

$SharePointQuery = new SharePointQuery(
    array(
        'listName' => 'Tasks',
        'viewName' => 'All Tasks',
        'includeAttachements' => false,
        'connection_name' => 'SharePointConnection1',
        'columns' => ''
    )
);

Вставка данных в SharePoint с помощью SQL и SharePointNonQuery

$SharePointNonQuery = new SharePointNonQuery(array(
    'sql' => "INSERT INTO Tasks (Title,AssignedTo,Status,Priority,DueDate,PercentComplete) VALUES ('Test task from PHP',1,'In Progress','(1) High', '".  date('Y-m-d H:i:s') ."',0.95)",
    'method' => 'ExecuteNonQuery',
    'connection_name' => 'SharePointConnection1'
));

Существуют также хранимые процедуры, которые помогут вам с некоторыми операциями, такими как расширенная обработка библиотек документов.

Загрузить файл

$download = new CamelotDownloadFile(array(
    "file" => $_GET["file"],
    "listName" => 'Shared Documents',
    "connection_name" => 'SharePointConnection1'
));

$download->download_file();

Загрузите файл

$args = array(  
    "file" => $_FILES,
    "listName" => 'Shared Documents',
    "folder" => 'Folder/',
    "connection_name" => 'SharePointConnection2'
); 

$UploadFile = new CamelotUploadFile($args);
18.02.2012

2

Я настоятельно рекомендую вместо этого использовать SharePoint WebServices ... если нет веских причин (например, производительности), я бы не стал трогать базу данных. Цитата из этого ответа:

  1. Это полностью не поддерживается лицензионным соглашением, с которым вы согласились при установке SharePoint.
  2. Не гарантируется, что ваши запросы будут работать после применения каких-либо исправлений или пакетов обновления к SharePoint, поскольку Microsoft может изменить схему базы данных в любое время.
  3. Прямой запрос к базе данных может вызвать дополнительную нагрузку на сервер и, следовательно, проблемы с производительностью.
  4. Операторы Direct SELECT для базы данных принимают общие блокировки чтения на уровне транзакции по умолчанию, поэтому ваши пользовательские запросы могут вызвать взаимоблокировки и, следовательно, проблемы со стабильностью.
  5. Ваши персонализированные запросы могут привести к получению неверных данных.

Если вы хотите узнать больше о том, почему вам не следует запрашивать базу данных, здесь отличная статья

Запросить веб-службу SharePoint с помощью PHP

17.10.2011

3

Это просто база данных - пока у вас есть имя сервера / базы данных и соответствующие разрешения, ничто не может вас остановить. Однако - схема довольно сложна, поэтому выяснить оттуда, что вам нужно, может быть сложно - в зависимости от того, что вы действительно хотите сделать, вам может быть лучше использовать веб-службы для доступа к Sharepoint OM. .

Если вы хотите писать напрямую в базу данных - не делайте этого. Невозможно сделать это, не попав в более серьезные проблемы, и поддержка не сможет вам помочь.

16.10.2011
  • Политика MS в отношении прямого доступа к базе данных SharePoint ... Не делайте этого. msdn.microsoft.com/en-us/library /bb861829(v=office.12).aspx вам будет намного лучше использовать интерфейс веб-служб - см. ответ @Andreas. 17.10.2011

  • 4

    База данных Sharepoint - это не что иное, как MS SQL Server. Если вы знаете имя сервера, вы можете подключиться к нему так же, как вы можете подключиться к серверу MSSQL из PHP.

    16.10.2011

    5

    Самый простой способ получить данные SharePoint из PHP, вероятно, через REST API. .

    17.10.2011

    6

    Я использовал это в API для подключения моего веб-приложения PHP к SharePoint и передачи данных с PHP на SharePoint, у меня это сработало на 100%:

    Инструкции по использованию:

    Установка

    Загрузите файл WSDL для списков SharePoint, с которыми вы хотите взаимодействовать. Обычно его можно получить по адресу: sharepoint.url/subsite/_vti_bin/Lists.asmx?WSDL

    Если вы используете композитор, просто добавьте thybag / php-sharepoint-lists-api в свой composer.json и запустите композитор.

        {
        "require": {
            "thybag/php-sharepoint-lists-api": "dev-master"
        }
        }

    Если вы не используете композитор, вы можете загрузить копию файлов API SharePoint вручную и включить в свой проект верхний класс «SharePointAPI.php».

    Создание объекта SharePointAPI

    Чтобы использовать PHP SharePoint Lists API, вам потребуется действующая учетная запись пользователя / службы с разрешениями на требуемый список.

    Для большинства установок SharePoint вы можете создать новый экземпляр API, используя:

        use Thybag\SharePointAPI;
                $sp = new SharePointAPI('', '', '');

    Если для вашей установки требуется проверка подлинности NTLM, вы можете вместо этого использовать:

        use Thybag\SharePointAPI;
        $sp = new SharePointAPI('', '', '', 'NTLM');

    Пользователи SharePoint Online должны использовать:

        use Thybag\SharePointAPI;
        $sp = new SharePointAPI('', '', '', 'SPONLINE');

    По умолчанию все методы возвращают массив. SetReturnType можно использовать, чтобы указать, что результаты должны возвращаться как объекты.

    Чтение из списка.

    Чтобы вернуть все элементы из списка, используйте либо

        $sp->read('');
    or
    
        $sp->query('')->get();

    Чтобы вернуть только первые 10 элементов из списка, используйте:

        $sp->read('', 10);

    or

        $sp->query('')->limit(10)->get();

    Чтобы вернуть все элементы из списка с фамилией Смит:

        $sp->read('', NULL, array('surname'=>'smith'));

    or

        $sp->query('')->where('surname', '=', 'smith')->get();

    Запрос списка

    Метод запроса можно использовать, когда вам нужно указать запрос, который слишком сложен, чтобы его можно было легко определить с помощью методов чтения. Запросы строятся с использованием ряда (надеюсь, выразительных) методов псевдо-SQL.

    Если вы, например, хотите запросить список домашних животных и вернуть всех собак младше 5 лет (отсортированных по возрасту), вы можете использовать.

    
        $sp->query('list of pets')->where('type','=','dog')->and_where('age','sort('age','ASC')->get();

    Если вы хотите получить первых 10 домашних животных, которые были кошками или хомяками, вы могли использовать:

        $sp->query('list of pets')->where('type','=','cat')->or_where('type','=','hamster')->limit(10)->get();

    Если вам нужно вернуть 5 элементов, но включая все поля, содержащиеся в списке, вы можете использовать. (передайте false в all_fields, чтобы включить скрытые поля).

        $sp->query('list of pets')->all_fields()->get();

    Если у вас есть набор CAML для конкретного расширенного запроса, который вы хотите выполнить, вы можете передать его объекту запроса, используя:

        $sp->query('list of pets')->raw_where('Hello World')->limit(10)->get();

    Добавление в список

    Чтобы добавить новый элемент в список, вы можете использовать метод «написать», «добавить» или «вставить» (все функции идентичны). Создание новой записи в Списке со столбцами имя, фамилия, возраст и телефон может выглядеть так:

        $sp->write('', array('forename'=>'Bob','surname' =>'Smith', 'age'=>40, 'phone'=>'(00000) 000000' ));

    Вы также можете запускать несколько операций записи вместе, используя:

        $sp->writeMultiple('', array(array('forename' => 'James'),array('forename' => 'Steve')));

    Редактирование строк

    Чтобы отредактировать строку, вам нужен ее идентификатор. Предполагая, что в приведенной выше строке был ID 5, мы могли бы изменить имя Боба на Джеймс с помощью:

        $sp->update('','5', array('forename'=>'James'));/code>

    As with the write method you can also run multiple update operations together by using:

        $sp->updateMultiple('', array(    array('ID'=>5,'job'=>'Intern'),array('ID'=>6,'job'=>'Intern')));

    При использовании updateMultiple каждый элемент ДОЛЖЕН иметь идентификатор.

    Удаление строк

    Чтобы удалить строку, требуется идентификатор, а также название списка. Чтобы удалить запись для Джеймса с идентификатором 5, вы должны использовать:

        $sp->delete('', '5');

    Если вы хотите удалить несколько записей одновременно, массив идентификаторов также может быть передан методам удаления нескольких

        $sp->deleteMultiple('', array('6','7','8'));

    Вспомогательные методы

    PHP SharePoint API содержит ряд вспомогательных методов, упрощающих обеспечение правильного формата определенных значений для некоторых специальных типов данных SharePoint.

    dateTime Методу DateTime можно передать дату в текстовом формате.

        $date = \Thybag\SharepointApi::dateTime("2012-12-21");

    Или отметка времени unix

        $date = \Thybag\SharepointApi::dateTime(time(), true);

    Устранение неполадок

    Невозможно найти оболочку https

    Если вы получаете эту ошибку, это обычно означает, что php_openssl (необходимый для завивки URL-адресов https) не включен на вашем веб-сервере. На многих локальных веб-серверах (например, XAMPP) вы можете просто открыть файл php.ini и раскомментировать строку php_openssl (т.е. удалить; перед ней).

    Примечание. Если вы используете SharePoint Online и у вас есть ошибки SSL, загрузите последнюю версию, которая была изменена с SSL v3 на TLS для подключений к SharePoint Online.

    Add this line to your composer.json file

        thybag/php-sharepoint-lists-api: dev-develop

    Вы можете выполнить операцию CRUD (создание / чтение / обновление / удаление) с помощью вышеуказанного SharePoint API.

    Ссылка URL-адреса ссылки: https://github.com/thybag/PHP-SharePoint-Lists-API

    04.06.2018
    Новые материалы

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

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

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

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

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

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

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