动态变量在php中不起作用

动态变量在php中不起作用,php,mysql,ms-access,Php,Mysql,Ms Access,我不能声明动态变量。硬编码变量正在工作。 所以基本上我有一个读取.mdb文件的代码。当值被硬编码时它工作,但当使值动态时它不工作。在变量中定义时,即使没有引号,也可以使用双引号和单引号。我的工作代码是 $userid = "91"; $sensorid = "1"; $conn = new COM("ADODB.Connection") or die("ADODB Oops!"); $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};

我不能声明动态变量。硬编码变量正在工作。 所以基本上我有一个读取.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_异常”包含消息 '来源:用于ODBC的Microsoft OLE DB提供程序 DriversDescription:[Microsoft][ODBC Microsoft Access 驱动程序]不是有效的书签。'in C:\xampp\htdocs\pages\attention.php:21堆栈跟踪:0 C:\xampp\htdocs\pages\attention.php21:com->执行'SELECT*FROM C...1 C:\xampp\htdocs\receipt.php51: 包括抛出的'C:\xampp\htdocs…'2{main} 第21行的C:\xampp\htdocs\pages\attention.php

稍后将更新我的问题,因为它认为问题不在于语法,而在于数据库。
我收到特定用户的错误信息,但尝试使用$userid=$userdetails['fingerprintid']与其他用户一起使用时,效果良好。

您的ID似乎是数字,请尝试:

$data = $conn->Execute("SELECT * FROM Checkinout WHERE userid = ".$userid." AND Sensorid = ".$sensorid." ORDER BY CheckTime DESC");

你能把$userdetails['fingerprintid']转换成var_dump吗;我怀疑它的值可能不是你期望的..嘿,谢谢你的回复结果是string2 89,我只想要89。我怎样才能得到它?但当我只回显$userdetails['fingerprintid']时,它只返回89。您是否检查了变量?没有静态/动态变量。。。它们是变量,因此是“动态的”,我的意思是,如果我硬编码数字89,它就可以工作,但如果我将其作为$userdetails['fingerpid']获得,它将是动态的,因为它将获得每个用户的指纹ID。在函数中使用此$userdetails['id']时,也使用了此$userdetails['id'],但这次不使用。如果echo$userdetails['指纹id']在代码中$userid=91的点处输出为91;那么就不可能得到$userid=91的其他结果;或$userid=$userdetails['指纹id'];还是错误。致命错误:未捕获的异常“com_异常”,消息为“源:用于ODBC驱动程序的Microsoft OLE DB提供程序说明:[Microsoft][ODBC Microsoft Access驱动程序]条件表达式中的数据类型不匹配。'in C:\xampp\htdocs\pages\attendance2.php:22堆栈跟踪:0 C:\xampp\htdocs\pages\attendance2.php22:com->执行'SELECT*FROM C...1C:\xampp\htdocs\receipt.php51:包括'C:\\xampp\\htdocs...2{main}在第22行的C:\xampp\htdocs\pages\attendance2.php中抛出,只是出于好奇,我尝试使用$userid=$\u GET['fingerprintid']及其工作原理。