2016-07-26 76 views
1

我已經安裝並運行了UwAmp。我已經建立了本地主機上一個mysqlite分貝,我嘗試使用下面的PHP代碼連接到它:用php連接到localhost sqlite db

<?php 
    try 
{ 
    /*** connect to SQLite database ***/ 
    $dbh = new PDO("sqlite:graspe.sqlite"); 
    echo "Handle has been created ...... <br><br>"; 

} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
    echo "<br><br>Database -- NOT -- loaded successfully .. "; 
    die("<br><br>Query Closed !!! $error"); 
} 
echo "Database loaded successfully ...."; 
?> 

的數據庫被稱爲graspe,當我運行此腳本,它說,它已成功連接。如果我將數據庫的名稱更改爲其他名稱,它仍會返回成功連接的消息。我究竟做錯了什麼?提前致謝。

+0

我感覺你的try/catch沒有踢進去。當你刪除'echo「時會發生什麼情況?Database loaded successfully ....」;'?這個定義的$錯誤在哪裏?錯誤報告應該引起你一些關於它的事情。 –

+0

當我刪除回聲線我得到「處理已創建......」 如果我更改數據庫的名稱爲別的,我仍然會得到相同的成功消息。 – KPM

+0

如何檢查錯誤http://php.net/manual/en/pdo.error-handling.php和http://php.net/manual/en/function.error-reporting.php - 這些都是什麼? –

回答

2

默認情況下,當你建立一個新的連接到sqlite數據庫 - 該數據庫將被創建,如果它不存在。

如果你想測試你的代碼,以確保它拋出時,數據庫不能被創建,你可以嘗試寫入文件名,你沒有權限異常(new PDO("sqlite:/");

+0

或者你只是檢查數據庫文件存在/可寫:) – icecub

+0

我想上面的代碼,我收到錯誤消息 SQLSTATE [HY000] [14]無法打開數據庫文件 數據庫 - 不 - 裝成功.. 查詢已關閉!!! PDOException:SQLSTATE [HY000] [14]無法在C:\ Users \ max \ Desktop \ Graspe \ graspe \ db_connect.php中打開數據庫文件:13堆棧跟蹤:#0 C:\ Users \ max \ Desktop \ Graspe \ graspe \ db_connect.php(13):PDO - > __ construct('sqlite:/')#1 {main} – KPM

+0

@KPM,這是預期的 - 這正是你的代碼所做的。 – Dekel