解析php上的查询mdb

时间:2018-04-30 03:21:42

标签: php ms-access

我有像这样的代码

<?php
    $mdb_file = realpath('../PEB_MDB/dbPEB.mdb');
    $dsn='Driver={MSAccess};DBQ='.$mdb_file.';';
    //$mdb_file = $_SERVER['DOCUMENT_ROOT']."/sapfiles/web_supp/PEB_MDB/dbPEB.mdb";
    $user = "";
    $password = "MumtazFarisHana";
    $conn = odbc_connect($dsn,$user,$password);

    var_dump($conn);

    $sql = "SELECT a.NAMABELI,s.URBRG1,a.NAMABELI,a.NEGBELI,a.NEGTUJU,a.CAR,a.KDKTR,a.PELMUAT,
        a.NODAFT,a.TGDAFT,a.FOB,d.NoDok,d.TgDok FROM (tblpebhdr AS a INNER JOIN tblpebdok AS d 
        ON a.CAR = d.CAR) INNER JOIN tblpebdtl AS s ON a.CAR = s.CAR 
        WHERE d.KdDok='380' and a.TGDAFT>=#01/jan/2018# AND a.TGDAFT<=#01/Apr/2018#";
    $rs = odbc_exec($conn, $sql) or die(odbc_errormsg());
    var_dump($rs);
?>

当我尝试运行这些代码时,它说Couldn't parse SQL,如果我更改我的查询,例如SELECT * FROM tblpebhdr它完全正常工作,但为什么我的第一个查询根本不起作用?是因为标签(#)?或其他什么?

1 个答案:

答案 0 :(得分:0)

您的语法是正确的访问SQL语法,因此请尝试删除一个字段,您应该找到有问题的字段名称。

此外,永远不要在过滤器中使用文本月份,因为名称应该被本地化,并且 - 当接受“反向”US格式时,因此如果TGDAFT是数据类型DateTime,则不能成为错误的来源 - 养成使用ISO序列的习惯yyyy-mm-dd:

 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
 if textField == self.YourTextFieldName{
    Search()
}
    }