2011-10-16 260 views
8

我不熟悉Sharepoint。我想用PHP查詢或閱讀Sharepoint數據庫。通過PHP連接到Sharepoint數據庫

有沒有一種方法可以做到這一點?

謝謝你的優勢。任何幫助是極大的讚賞。

+1

[鏈接](http://stackoverflow.com/questions/3565845/sharepoint-access-sql-sharepoint-files)試試這個 –

回答

5

你應該考慮使用PHP柯萊特工具的SharePoint,它是用於SharePoint列表專門建造柯萊特XML格式的有據可查的PHP框架。

文檔和下載

您還需要柯萊特SharePoint集成工具包,http://camelottoolkit.codeplex.com/和柯萊特.NET連接器(HTTP://www.bendsoft。 COM /淨SharePoint的連接器/)。

安裝在一個盒子,可以達到SharePoint服務器的連接,這可能是在同一個服務器SharePoint服務器,然後在同一臺服務器的連接器上安裝集成工具包。設置集成工具包中包含的集成服務(按照說明進行操作),然後完成。網站上還有一些指導視頻。

使用這個的有利的一面是,你將能夠使用常見的SQL查詢通過API交談SharePoint列表和庫,從未使用的底層MSSQL數據庫。

選擇與SQL從SharePoint數據從SharePoint的列表視圖名

$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' => '' 
    ) 
); 

插入數據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); 
0

Sharepoint數據庫不過是MS SQL Server。如果您知道服務器名稱,則可以像連接到PHP的MSSQL服務器那樣連接它。

1

這只是一個數據庫 - 只要你有服務器/數據庫的名稱和適當的權限,沒有什麼能阻止你。 但是 - 模式相當複雜,因此從中找出需要的可能會非常棘手 - 取決於您真正想做什麼,最好使用Web服務訪問Sharepoint OM。

如果你想直接寫數據庫到 - 不要。如果沒有讓自己陷入更深層次的困境,沒有切實可行的辦法,支持將無法幫助你。

+2

直接SharePoint數據庫訪問的MS策略是...不。 http://msdn.microsoft.com/en-us/library/bb861829(v=office.12).aspx使用Web服務界面你會好得多 - 請參閱@安德烈亞斯的答案。 – Ryan

6

我強烈建議使用SharePoint WebServices,除非有正當理由(即性能)我不會觸及數據庫。 Quote from this answer:

  1. 這是完全不支持由EULA你同意,當你 安裝SharePoint來。
  2. 您的查詢並不保證 應用任何補丁或服務包,因爲微軟 到SharePoint可以改變數據庫模式後隨時工作。
  3. 直接查詢數據庫可能會給服務器帶來額外的負擔,因此會導致性能問題 。
  4. 對數據庫直接SELECT語句採取在默認的事務級共享 讀鎖,以便您的自定義查詢 可能導致死鎖,因此穩定性問題。
  5. 您的自定義 查詢可能會導致檢索到錯誤的數據。

如果您想了解更多關於爲什麼你不應該查詢數據庫,here是一個真正偉大的文章

Query A SharePoint WebService with PHP

0

獲得SharePoint數據最簡單的方法從PHP可能是通過REST API