首页 > 解决方案 > 使用 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);

标签: phpjquerymysqlformsselector

解决方案


您应该将第 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


推荐阅读