php - 使用 Select 表单过滤使用 PHP 从 MySQL 查询的表
问题描述
我正在编写一些 PHP 来从我在 WAMP 服务器上设置的 MySQL 数据库中查询。我还在学习 PHP 和 html javascript,所以这两种语言的语法对我来说还是有点陌生。
编辑:语法错误已解决,但是我现在收到一个
未定义索引:家庭
编译时出错。我正在通过我的服务器运行两个文件:front.php 和 back.php。Front 包含一个选择器表单,用户可以在其中选择一个过滤器以应用于 MySQL 的 php 查询。back.php 使用 $_REQUEST 接收选择并在 SELECT 查询中使用它。我在下面的 front.php 中发布了与选择器表单相关的代码。
<form method="POST">
<select name="family" onchange="showUser (this.value)">
<option value="empty">Select a Family:</option>
<option value="capacitor">capacitor</option>
<option value="resistor">resistor</option>
<option value="ferrite bead">ferrite bead</option>
</select>
</form>
这是 back.php 中的 $_REQUEST 调用
$sql="SELECT * FROM testv2 WHERE family='".$_REQUEST['family']."'";
$result = mysqli_query($con,$sql);
解决方案
您应该将第 24 行更改为:
$sql="SELECT * FROM testv2 WHERE family ='$_REQUEST['family']'";
至:
$sql="SELECT * FROM testv2 WHERE family ='" . $_REQUEST['family'] . "'";
因为这应该可以修复语法错误,但仍然使用上面的代码是个坏主意,因为代码存在 SQL 注入漏洞。
如果您正在学习,我建议您使用 PDO 准备好的语句。 http://php.net/manual/en/pdo.prepared-statements.php
推荐阅读
- sql - sql循环id数据
- javascript - Nuxt.js - ScrollBehavior SavedPosition = null
- django - django的详情页不显示产品类别名称
- apache-spark - 更新 Pyspark Dataframe 中数组的值
- c# - 如何获取使用 Identityserver4 的项目中的角色用户?
- wordpress - 当我们在主页上安装 WordPress 然后我们将它安装在一个目录中时会发生什么
- odoo - Odoo-当转换机会或导致客户时。自定义字段和数据未映射或未填充到客户
- bash - 使用 bash 跳过文件中的注释
- python - 当字典中有其他字母/数字时,如何检查字典中的值中的特定字母?
- ip-address - 目标 IP 地址 = '::'