Ms访问数据库就像查询不起作用

时间:2014-11-04 08:26:12

标签: php sql database ms-access

我最近一直在使用访问数据库(为了便于通过转换Excel数据来使用它

进入访问数据库)。当我死了sql查询并在访问查询窗口中执行时它可以工作

完美,但不是$ query-> fetch()。这是我试过的

<?php
$dbName = $_SERVER["DOCUMENT_ROOT"] . "website-mub/db/rates.accdb";

if (!file_exists($dbName)) {
    die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$dbName; Uid=; Pwd=;");
        if ($db)
            echo "success";
        $sql = "SELECT Prefix,[Named Route Name],[New Rate] FROM ratesheet";
        if (!empty($countryCode) && !empty($countryName))
            $sql .= " WHERE Prefix LIKE CStr(" . $countryCode . ") AND [Named Route Name] LIKE '" . $countryName . " *'";
        else if (!empty($countryCode))
            $sql .= " WHERE Prefix LIKE CStr(" . $countryCode . ")";
        else if (!empty($countryName))
            $sql .= " WHERE [Named Route Name] LIKE '" . $countryName . " *'";

//      die($sql);  // The query exceutes properly

$result = $db->query($sql);
$row = $result->fetch();


if (!empty($row)) {
    print_r($row);  // not giving any results
    exit();
}
?>

更新: -

为了在db中使用Cstr查询integer字段'country code',它会给出一些结果(但它过于重复 不需要的数据)。对于像text这样的'country name'类型,它根本不起作用。

谢谢。

表格结构

enter image description here

示例查询

SELECT Prefix,[Named Route Name],[New Rate] FROM ratesheet WHERE [Named Route Name] LIKE 'Afghanistan*' 

0 个答案:

没有答案