无法在linux上连接php和ms access数据库
我已经在无法在linux上连接php和ms access数据库,php,unixodbc,Php,Unixodbc,我已经在ubuntu14.0中安装了unixodbc和libodbc,并在这里配置了它 /etc/odc.ini [MyDriver] Description = MyDriver Driver for MyDBMS Driver = /path/to/libmyodbc.so Setup = /path/to/libmyodbcs.so FileUsage = 1 UsageCount = 1 [MyDataSource] Description = The S
ubuntu14.0
中安装了unixodbc
和libodbc
,并在这里配置了它
/etc/odc.ini
[MyDriver]
Description = MyDriver Driver for MyDBMS
Driver = /path/to/libmyodbc.so
Setup = /path/to/libmyodbcs.so
FileUsage = 1
UsageCount = 1
[MyDataSource]
Description = The Source of My Data
Driver = MyDriver
ServerName = localhost
Database = MyDatabase
UserName = admin
Password = something
和数据源配置
/etc/odc.ini
[MyDriver]
Description = MyDriver Driver for MyDBMS
Driver = /path/to/libmyodbc.so
Setup = /path/to/libmyodbcs.so
FileUsage = 1
UsageCount = 1
[MyDataSource]
Description = The Source of My Data
Driver = MyDriver
ServerName = localhost
Database = MyDatabase
UserName = admin
Password = something
下面是php代码
$query = 'SELECT * FROM MyTable';
$mdb_file = '/path/to/example.mdb';
$uname = explode(" ",php_uname());
$os = $uname[0];
switch ($os){
case 'Windows':
$driver = '{Microsoft Access Driver (*.mdb)}';
break;
case 'Linux':
$driver = 'MDBTools';
break;
default:
exit("Don't know about this OS");
}
$dataSourceName = "odbc:Driver=$driver;DBQ=$mdb_file;";
$connection = new \PDO($dataSourceName,'','');
$result = $connection->query($query)->fetchAll(\PDO::FETCH_ASSOC);
print_r($result);
但如果我输入sql的用户名,它将通过拒绝用户root的访问进行访问
它与sql连接更改
$dataSourceName = "odbc:Driver=$driver;DBQ=$mdb_file;";
到
虽然我的dsn引用的是ms access文件,但它只是与mysql数据库连接,而不是与ms access连接