无法使用 PHP 无效文件名连接到访问数据库
Posted
技术标签:
【中文标题】无法使用 PHP 无效文件名连接到访问数据库【英文标题】:Unable to connect to access database using PHP invalid file name 【发布时间】:2017-10-08 15:53:46 【问题描述】:我正在尝试使用 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 Driver] 不是有效的文件名。,SQLConnect 中的 SQL 状态 S1000 在 C:\xampp\htdocs\deconnect\dconnect.php 第 3 行
【问题讨论】:
【参考方案1】:在 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";
?>
输出
要解决此问题,只需将e
附近的反斜杠加倍即可转义此符号:
echo "C:\Users\Parth\Documents\\eTimeTrackLite1.mdb";
或者更好的是,将所有反斜杠加倍:
echo "C:\\Users\\Parth\\Documents\\eTimeTrackLite1.mdb";
【讨论】:
以上是关于无法使用 PHP 无效文件名连接到访问数据库的主要内容,如果未能解决你的问题,请参考以下文章
用户帐户“root”的指定密码无效,或无法连接到数据库服务器