2013-08-23 71 views
1

我怎樣才能PHP連接到一個H2數據庫,到目前爲止,我試着啓動嵌入式服務器與PHP連接H2DB H2數據庫

$ java -cp h2-1.3.172.jar org.h2.tools.Server 
    Web Console server running at http://127.0.1.1:8082 (others can connect) 
    TCP server running at tcp://127.0.1.1:9092 (only local connections) 
    PG server running at pg://127.0.1.1:5435 (only local connections) 

ubuntu下安裝PG-SQL模塊

sudo apt-get install php5-pgsql 

然後在我的PHP我有以下

$conn = pg_connect("host=127.0.1.1 port=5435 dbname=/home/frank/testdb user=sa password="); 

也試過不同的端口:5435,9092,不同的居屋t:localhost,127.0.0.1但沒有,返回的連接爲空或腳本掛起。

有什麼建議嗎?

回答

1

pg_connect用於連接到PostrgeSQL數據庫服務器,而不是用於H2DB。這些都是完全不同的產品,並且不compatibile

要連接到H2您可以使用PHP-Java橋接器和一些自定義的Java類所需的功能暴露給PHP客戶端

+0

H2提供PostgreSQL兼容性,根據一些論壇的使用它是唯一的方法來規避在H2下缺乏正確的驅動程序。如果你有一個使用php-java-bridge的工作示例,請分享它,到目前爲止沒有人設法做到這一點。 – dendini

+0

訣竅是你不能序列化資源,所以不可能做連接相關的東西,你必須添加一個抽象層。例如,你不能做SELECT查詢和提取結果集。您必須在Java端執行SELECT,使用一些ORM將結果集轉換爲對象,然後您可以將這些對象發送回PHP – Matthias

1

在執行PHP我是有工作的,去年Java servlet中的代碼。我的實驗可在https://github.com/webdevelopersdiary/jamp。它受Quercus支持,並將PHP數據庫連接嘗試重定向到H2(至少對於MySQL來說,它沒有針對PSQL進行測試,但在這種情況下它可能也會這樣做)。還要注意,H2的「兼容模式」是非常基本的,它仍然會打破您提供的非常標準的PSQL內容。