Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
研究mysql查询的输入文本,php编码_Php_Mysql_Mysqli_Phpmyadmin - Fatal编程技术网

研究mysql查询的输入文本,php编码

研究mysql查询的输入文本,php编码,php,mysql,mysqli,phpmyadmin,Php,Mysql,Mysqli,Phpmyadmin,我在编写php页面时遇到了一个问题,在这里我可以看到一个表(一个mysql表),但是当我插入用户名、id\u用户、电子邮件或地址(例如)时,我必须过滤这个表。我将复制为单个字段编写的代码: if (!isset($_GET['name'])) $query = "not interesting"; else if($_GET['name'] != ''){ $var145 = $_GET['name']; $query = "not interesting wher

我在编写php页面时遇到了一个问题,在这里我可以看到一个表(一个mysql表),但是当我插入用户名、id\u用户、电子邮件或地址(例如)时,我必须过滤这个表。我将复制为单个字段编写的代码:

if (!isset($_GET['name']))
     $query = "not interesting";
else if($_GET['name'] != ''){
     $var145 = $_GET['name'];
     $query = "not interesting where `Name` = '$var145'";
}
else 
     $query = "not interesting";

这很好,因为当表单未发送时,它将显示所有表,当文本不为null时,它将显示带有过滤器的查询,当文本为null时,它将显示所有表。你知道怎么帮我吗?我不知道如何改进另外三个输入文本来研究更好的记录,因为我必须检查变量的存在性,然后决定做什么。对不起,我的英语不好,我希望你能理解我的问题。谢谢大家

尤里卡!这不是我所能想象的最好的代码,但我发布它,希望它对某些人有用

$doc1_queryI = "SELECT * from t_history";
$var1 = 0;  //a
$var2 = 1;  //b
$var3 = 1;  //c
$var4 = 0;  //d
$varAnd =0;
if($var1==1 or $var2==1 or $var3==1 or $var4==1)
   $doc1_queryF = $doc1_queryI." where"; //se almeno una session esiste
if($var1==1){
   $doc1_queryF = $doc1_queryF." x=a ";
   $varAnd =1;
}
if($var2==1)
{
    if($varAnd==1)
       $doc1_queryF = $doc1_queryF." and ";
    $doc1_queryF = $doc1_queryF." y=b ";
    else
       $varAnd =1;
}
if($var3==1)
{
    if($varAnd==1)
        $doc1_queryF = $doc1_queryF." and ";
    $doc1_queryF = $doc1_queryF." z=c ";
    else
   $varAnd =1;
}
if($var4==1)
{
    if($varAnd==1)
        $doc1_queryF = $doc1_queryF." and ";
    $doc1_queryF = $doc1_queryF." p=d ";
}
echo $doc1_queryF;`

听起来您需要实现复杂的过滤。通常,这是通过在处理每个表单字段时构建一个“WHERE”子句来完成的,而不是基于每个字段进行整个查询。另外,请阅读有关SQL注入的文档:对不起,现在我看不懂了。这种复杂过滤的最后一次机会是只提交一次表单。你知道这件事有用吗?我知道有一个函数,但如果我们不能阻止它,它将导致一个循环,因为页面将被重新加载,脚本将再次执行,并且再次执行-1。。。为什么?