动态变量在php中不起作用
Posted
技术标签:
【中文标题】动态变量在php中不起作用【英文标题】:Dynamic variable not working in php 【发布时间】:2015-09-30 06:13:25 【问题描述】:我不能声明一个动态变量。硬编码变量正在工作。 所以基本上我有一个读取 .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” '来源: Microsoft OLE DB Provider for ODBC 驱动程序说明: [Microsoft][ODBC Microsoft Access 司机] 不是一个有效的书签。在 C:\xampp\htdocs\pages\attendance.php:21 堆栈跟踪:#0 C:\xampp\htdocs\pages\attendance.php(21): com->Execute('SELECT * FROM C...') #1 C:\xampp\htdocs\reception.php(51): include('C:\xampp\htdocs...') #2 main 抛出 C:\xampp\htdocs\pages\attendance.php 第 21 行
稍后将更新我的问题,因为它认为问题不在于语法,而在于数据库。 我收到特定用户的错误,但尝试使用 $userid = $userdetails['fingerprintid'] 与其他用户一起工作。
【问题讨论】:
你能var_dump($userdetails['fingerprintid']);
我怀疑它的价值可能不是你所期望的......
嘿,谢谢您的回复结果是字符串(2)“89”我只想要89。我怎样才能得到它?但是当我只是回显 $userdetails['fingerprintid'] 它只返回 89。
你cjeck你的变量吗?没有静态/动态变量之类的东西......它们是变量,因此是“动态的”
我的意思是,如果我将数字 89 硬编码它的工作,但如果我将它作为 $userdetails['fingerprintid'] 这将是动态的,因为它将获得每个用户的指纹。在函数中使用它时也使用了这个 $userdetails['id'] 并且它对我有用,但这次不是。
如果 echo $userdetails['fingerprintid']
输出为 91 在代码中的点你有 $userid = "91";
则不可能使用 $userid = "91";
或 @987654326 获得其他结果@
【参考方案1】:
您的 ID 似乎是数字,所以请尝试:
$data = $conn->Execute("SELECT * FROM Checkinout WHERE userid = ".$userid." AND Sensorid = ".$sensorid." ORDER BY CheckTime DESC");
【讨论】:
仍然错误。致命错误:未捕获的异常 'com_exception' 带有消息'来源: Microsoft OLE DB Provider for ODBC Drivers描述: [Microsoft][ODBC Microsoft Access Driver] 数据标准表达式中的类型不匹配。在 C:\xampp\htdocs\pages\attendance2.php:22 堆栈跟踪:#0 C:\xampp\htdocs\pages\attendance2.php(22): com->Execute('SELECT * FROM C...' ) #1 C:\xampp\htdocs\reception.php(51): include('C:\\xampp\\htdocs...') #2 main 在 C:\xampp\htdocs\pages\attendance2 中抛出.php 在第 22 行 出于好奇,我尝试使用 $userid = $_GET['fingerprintid'] 及其工作原理。以上是关于动态变量在php中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Vuejs 动态切换类在 Laravel Blade 模板中不起作用