我最近一直在使用访问数据库(为了便于通过转换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'
类型,它根本不起作用。
谢谢。
表格结构
示例查询
SELECT Prefix,[Named Route Name],[New Rate] FROM ratesheet WHERE [Named Route Name] LIKE 'Afghanistan*'