使用select表单过滤使用php从mysql查询的表

ghhkc1vu  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(353)

我正在编写一些php来查询我在wamp服务器上设置的mysql数据库。我也在学习php和htmljavascript,所以这两种语言的语法对我来说还是有点陌生。
编辑:语法错误已经解决,但是我现在收到一个
未定义索引:族
编译时出错。我正在我的服务器上运行两个文件,front.php和back.php。front包含一个选择器表单,用户可以在其中选择要应用于php到mysql查询的过滤器。back.php接收带有$\请求的选择,并在选择查询中使用它。我已经在下面的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中的$\u请求调用

$sql="SELECT * FROM testv2 WHERE family='".$_REQUEST['family']."'";
$result = mysqli_query($con,$sql);
azpvetkf

azpvetkf1#

你在治疗

$sql="SELECT * FROM testv2 WHERE family ='$_REQUEST['family']'";

作为整数,将其视为字符串,请执行以下操作:

$sql="SELECT * FROM testv2 WHERE family ='".$_REQUEST['family']."'";

另一个建议是使用like
注意:like将增加数据库中给定的结果,因此如果您有大量数据,请注意它
编辑:根据请求,直接使用$\u post而不是$\u request,请在$\u request、$\u get和$\u post之间进行检查

f5emj3cl

f5emj3cl2#

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

相关问题