无法使用PHP无效文件名

时间:2017-10-08 15:53:46

标签: php odbc

我正在尝试使用 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");

几乎两个选项都显示相同的错误:

  

警告:odbc_connect():SQL错误:[Microsoft] [ODBC Microsoft Access驱动程序]不是有效的文件名。,第3行的C:\ xampp \ htdocs \ deconnect \ dconnect.php中的SQLConnect中的SQL状态S1000 < / p>

1 个答案:

答案 0 :(得分:0)

在PHP中,\e是非字母数字字符(即十六进制符号)的特殊escape sequence

  

。\ E       逃脱(十六进制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

要修复,只需将e附近的反斜杠加倍即可转义此符号:

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

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

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

Command Line Output Fix