我无法声明一个动态变量。硬编码变量正在工作。 所以基本上我有一个读取.mdb文件的代码。当值被硬编码时它工作但是当使值动态时它不起作用。即使没有引号,在变量中定义时也可以使用双引号和单引号。我的工作代码是
$userid = "91";
$sensorid = "1";
$conn = new COM("ADODB.Connection") or die("ADODB Oops!");
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\standard\Att2003.mdb");
$data = $conn->Execute("SELECT * FROM Checkinout WHERE userid = '".$userid."' AND Sensorid = '".$sensorid."' ORDER BY CheckTime DESC");
如果我声明它,它会起作用 $ userid = $ userdetails [' fingerprintid'];
我可以保证在使用时获得正确的价值 $的UserDetails [' fingerprintid'];
这是错误
致命错误:未捕获的异常' com_exception'与消息 ' 来源:用于ODBC的Microsoft OLE DB提供程序 驱动程序
描述: [Microsoft] [ODBC Microsoft Access 驱动程序]不是有效的书签。'在 C:\ xampp \ htdocs \ pages \ attendance.php:21堆栈跟踪:#0 C:\ xampp \ htdocs \ pages \ attendance.php(21):com->执行(' SELECT * FROM C ...')#1 C:\ xampp \ htdocs \ reception.php(51): include(' C:\ xampp \ htdocs ...')#2 {main}引入 第21行的C:\ xampp \ htdocs \ pages \ attendance.php
稍后会更新我的问题,因为它认为问题不是语法,而是数据库。 我得到了特定用户的错误,但是使用$ userid = $ userdetails [' fingerprintid']尝试与其他用户一起工作。
答案 0 :(得分:0)
您的ID似乎是数字,请尝试:
$data = $conn->Execute("SELECT * FROM Checkinout WHERE userid = ".$userid." AND Sensorid = ".$sensorid." ORDER BY CheckTime DESC");