使用php和wamp插入由另一个程序打开的mdb文件

时间:2017-03-02 13:51:06

标签: php ms-access wamp

我仍然需要解决这个问题:(

我在Windows XP上运行程序名称QMS以打印患者的票证。它使用Access作为数据库。我意识到在这个数据库中有一个表名rData。当有人需要打印票证时,它会在此表中插入一个新行,而Ticketno列将加一。

您可以在上图中看到,它插入了一个Ticketno = 258的新行,打印机为患者打印了一张票据。

接下来,Iam在这台计算机上安装Wamp,并在需要时使用php插入此表。这是我要插入的代码:

$dbName = "E:\\2.mdb";
if (!file_exists($dbName)) {
    die("Could not find database file.");
}
try {
    $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$sql = "SELECT TOP 1 Ticketno FROM rdata WHERE ServiceId = 1 ORDER BY ID DESC";
$result = $db->query($sql);
$row = $result->fetch();
$num = $row['Ticketno']+1;
if(isset($_POST['submit'])){
    $sql = "INSERT INTO rdata(ServiceID, Ticketno, TicketFlag, TicketChain) VALUES(1,".$num.",0,';01')";
    $result = $db->query($sql);
}

运行此代码后,我通过Microsoft Access打开文件并查看表rData,我看到插入了一个新行(在这种情况下Ticketno = 259)。我按下打印按钮,希望它会打印一张数字= 260的票。

但是,它仍然打印一张票259,然后在一行中插入一个Ticketno = 259的行,现在我有2行,Ticketno = 259.看起来该程序忽略了我的查询。 / p>

我删除了这两行并再次执行。但是,在按下打印按钮之前,我退出程序并重新打开。现在打印机票260.有人可以向我解释一下吗?我该怎么办?

enter image description here

0 个答案:

没有答案