我已经安装了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
答案 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>