PHP ODBC - 连接到本地.mdb数据库

时间:2015-09-18 17:55:28

标签: php odbc

我已经安装了php5-odbc库。

尝试连接到.mdb文件,但不断收到错误找不到数据源名称,并且未指定默认驱动程序

代码:

$dbName = "../../../var/Import/PartsPlaceDB.mdb";
if (!file_exists($dbName)) {
    die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");

输出:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified' in [...]

PDO驱动程序:

foreach(PDO::getAvailableDrivers() as $driver)
{
echo $driver.'<br />';
}

输出:

mysql
odbc
sqlite

2 个答案:

答案 0 :(得分:3)

64位版本会出现问题。看起来您的代码仅适用于Windows 32位。 要解决此问题,您可以安装此工具:Microsoft Access Database Engine 2010 Redistributable。几个月我遇到了同样的问题,但这个工具解决了我的问题。

答案 1 :(得分:0)

我猜你的位置错了?

而不是这个

$dbName = "..\..\..\var\Import\PartsPlaceDB.mdb";

为什么不这样做

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".GraphActivity"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/graph">


    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primary"
        app:tabGravity="fill"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="@color/white"
        app:tabTextColor="@color/black">
        <!--To be fixed in future to occupy whole bar when mode = fixed-->


    </android.support.design.widget.TabLayout>

    <edu.tp.sghealthapp.library.graphViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tabLayout"></edu.tp.sghealthapp.library.graphViewPager>

 <LinearLayout
    android:id="@+id/jv"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />



</RelativeLayout>