2017-10-08 53 views
0

我試圖用PHP訪問數據庫連接來訪問數據庫,無法連接使用PHP無效的文件名

一派太多,但還是堅持了這一點:

幾乎都
<?php 
    $dbName = "C:\Users\Parth\Documents\eTimeTrackLite1.mdb"; 
    $connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", '', ''); 
    $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)};Dbq=$dbName"); 

選項顯示了同樣的錯誤:

Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Not a valid file name., SQL state S1000 in SQLConnect in C:\xampp\htdocs\deconnect\dconnect.php on line 3

回答

0

在PHP中,\e是一個非字母數字的CHARACT特殊escape sequence ER(即十六進制符號):

\e escape (hex 1B)

因此,文件路徑(包含文件夾和文件名之間\e)要傳遞到連接字符串失敗是可以與下面的例子中可以看出合法的Windows路徑:

<?php 

echo "C:\Users\Parth\Documents\eTimeTrackLite1.mdb"; 
echo "\n"; 
echo "C:\Path\To\Database\File.mdb"; 
echo "\n"; 

?> 

輸出

Command Line Output Original

要解決,只需雙擊近反斜槓逃離這個符號:

echo "C:\Users\Parth\Documents\\eTimeTrackLite1.mdb"; 

或者更好的是,加倍所有反斜槓:

echo "C:\\Users\\Parth\\Documents\\eTimeTrackLite1.mdb"; 

Command Line Output Fix