问题描述
我想使用学生ID或学生电话从名为“ sms_students”的表中选择一条记录
这是我的代码
$student_rand_id=$_GET['std_rand'];
$std_tell=$_GET['std_tell'];
$view_student = $config->prepare("SELECT * FROM sms_students WHERE st_rand = :random_id || st_tel =: st_tel");
$view_student->execute(['random_id' => $student_rand_id]);
$view_student->execute(['st_tel' => $std_tell]);
$row = $view_student->fetch();
解决方法
由于您两次调用execute
,所以它执行两次,两次都带有一组不完整的参数。不过,这很容易解决:
$view_student = $config->prepare("SELECT * FROM sms_students WHERE st_rand = :random_id OR st_tel = :st_tel");
$view_student->execute(['random_id' => $_GET['std_rand'],'st_tel' => $_GET['std_tell'] ]);
$row = $view_student->fetch();
尝试摆脱一次性变量,它们几乎总是不必要的,并尽力使名称完全匹配。一起看到st_tel
和std_tell
是一个不正确的迹象。获取您的代码以同意名称并坚持使用。