程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了根据 PHP 中应用的过滤器操作 SQL 查询?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决根据 php 中应用的过滤器操作 SQL 查询??

开发过程中遇到根据 php 中应用的过滤器操作 SQL 查询?的问题如何解决?下面主要结合日常开发的经验,给出你关于根据 php 中应用的过滤器操作 SQL 查询?的解决方法建议,希望对你解决根据 php 中应用的过滤器操作 SQL 查询?有所启发或帮助;

我有一个 HTML 表,其中填充了在页面加载时从连接的数据库表“出勤”中检索到的值,以及登录用户的会话用户 ID。

根据 PHP 中应用的过滤器操作 SQL 查询?

为了调整这个表,我使用了一组用 <form> 创建的过滤器和输入:

根据 PHP 中应用的过滤器操作 SQL 查询?

对于工作区编号,它获取文件中的所有工作区编号,并将它们列为下拉列表中的选项,因此它们是预先填充的值。 出勤复选框与值 1 代表出席和 0 代表迟到的复选框相关联

到目前为止,我只写出了 ID 搜索过滤器和工作区编号,但我不确定这是否可行,因为 sql 查询仍然具有 WHERE ... WorkID = ?,即使已经有没有选择工作区编号,而不是从查询中省略?

$('.apply').click(function () {
      if ($('#IDSearch')[0].checkValIDity()){ #checks if the form is valID
      $('#IDSearch').submit();
    }
    if ($('#chosenWork') != ""){
      $('#WorkIDSearch').submit(); #submits the form to POST the Workspace No.
    }
  });

...

include("config.php");

if (isset($_POST['reqID'])){ #checks if the ID search input fIEld (reqID) has been submitted
  $userID = $_POST['reqID'];
  
} else{                                  
  $userID = $_SESSION['sess_user_iD'];
  
}

if (isset($_POST['chosenWork'])){ #checks if the dropdown for Workspace number (chosenWork) has been SELEcted
  $chosenwork = $_POST['chosenWork'];
  
}

if (isset($_POST['chosenWork']) && isset($_POST['reqID'])){ #checks if both are SELEcted
  $chosenwork = $_POST['chosenWork'];
  $userID = $_POST['reqID'];
  
}


$stmt = $conn->prepare("SELECT number,ID,Date,Log_Time,WorkID,Att_Type FROM Attendance WHERE ID = ? AND WorkID = ?";
$stmt->bindParam("ii",$userID,$chosenwork);
$stmt->execute();

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

我想要的输出是这些过滤器中的任何一个都可以独立应用或组合应用以调整 sql 查询的 WHERE 子句。

解决方法

你可以这样试试:

"""This is my example docString

A simple bullet list:

- point 1
- point 2
- point 3

"""
,

如果没有更多信息,很难帮助调试,但我注意到了几件事:

  1. 查看错误,它说问题是语法问题,但可能是旧版本的结果。你检查过你的sql版本吗?准备好的语句是在 v4.1 中引入的。

  2. 你还没有显示你的 html 或 js 验证,但既然你告诉 sql 期望整数,你绝对确定你的变量是整数吗?可以肯定的是,在绑定它们之前,将 0 添加到 $userid 和 $chosenwork(例如 $userid = $userid + 0;

  3. 为了安全起见,验证提交的表单数据应该在服务器而不是客户端上完成——绕过客户端 js 验证是微不足道的

  4. Serghei Leonardo 的回答中的 null coalescing operators 仅在您使用 php7 或更高版本时才有效。另外,我不熟悉他对它的用法,所以我可能是错的,但在我看来,如果设置了 $userid 和 $chosenwork,并且仅在 isset($userid)isset($chosenwork) 是null(即,如果 $userid 或 $chosenwork 为 null),这将与您想要的相反。在此处查看另一个 explanation。这可能不起作用,但请尝试将其更改为:

    (!isset($userid) ?? $stmt->bind_param("i",$userid)); (!isset($chosenwork) ?? $stmt->bind_param("i",$chosenwork));

大佬总结

以上是大佬教程为你收集整理的根据 PHP 中应用的过滤器操作 SQL 查询?全部内容,希望文章能够帮你解决根据 PHP 中应用的过滤器操作 SQL 查询?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。