Я не знаком с Sharepoint. Я хотел бы запросить или прочитать базу данных Sharepoint с помощью PHP.
Есть ли способ, которым я могу это сделать?
Благодарю вас в advanc. Любая помощь приветствуется.
Вы должны рассмотреть возможность использования инструментальных средств Camelot PHP для SharePoint, это хорошо документированная инфраструктура php для формата XML Camelot, специально созданного для списков SharePoint.
Документация и загрузка
Вам также понадобится Инструмент интеграции Camelot SharePoint Integration Toolkit, http://camelottoolkit.codeplex.com/ и коннектор Camelot .NET (http://www.bendsoft.com/net-sharepoint-connector/).
Установите соединитель в поле, которое может попасть на сервер SharePoint, это может быть тот же сервер, что и сервер SharePoint, а затем установите набор инструментов интеграции на том же сервере, что и Connector. Настройте службу интеграции, включенную в набор инструментов интеграции (следуйте инструкциям), а затем вы закончите. На веб-сайтах также есть несколько инструкций.
Недостатком использования этого является то, что вы сможете разговаривать с списками и библиотеками 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('Ymd 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);
Я настоятельно рекомендую использовать SharePoint WebServices вместо … если есть веские причины (т.е. производительность), я бы не касался базы данных. Цитата из этого ответа:
- Это полностью не поддерживается соглашением EULA, которое вы согласились при установке SharePoint.
- Ваши запросы не гарантируют работу после применения каких-либо патчей или пакетов обновления для SharePoint, поскольку Microsoft может в любое время изменить схему базы данных.
- Прямое обращение к базе данных может привести к дополнительной нагрузке на сервер и, следовательно, к проблемам с производительностью.
- Прямые операторы SELECT для базы данных используют общие блокировки чтения на уровне транзакций по умолчанию, поэтому ваши пользовательские запросы могут вызывать взаимоблокировки и, следовательно, проблемы стабильности.
- Ваши пользовательские запросы могут привести к неправильному извлечению данных.
Если вы хотите узнать больше о том, почему вы не должны запрашивать базу данных, вот действительно отличная статья
Запрос SharePoint WebService с PHP
Это просто база данных – если у вас есть имя сервера / базы данных и правильные разрешения, нет ничего, что могло бы остановить вас. Тем не менее – схема довольно привлекательна, поэтому выяснять, что вам нужно, может быть сложно – в зависимости от того, что вы действительно хотите сделать, вам может быть лучше использовать веб-службы для доступа к Sharepoint OM.
Если вы хотите напрямую писать в базу данных – не делайте этого. Нет никакого практического способа сделать это, не вдаваясь в глубокие проблемы дальше по линии, и поддержка не сможет вам помочь.
База данных Sharepoint – это не что иное, как MS SQL Server. Если вы знаете имя сервера, вы можете подключиться к нему так же, как и к тому, как вы можете подключиться к серверу MSSQL с PHP.
Самый простой способ получить данные SharePoint из PHP, вероятно, через API REST .