PHP-安全问题。SQL注入/XSS对我安全吗

PHP-安全问题。SQL注入/XSS对我安全吗,php,mysql,xss,sql-injection,Php,Mysql,Xss,Sql Injection,这个问题无处不在,我看到了很多答案。很多人建议使用mysql\u real\u escape\u字符串,但这不是一个选项,因为它现在已经贬值了。 作为PHP/SQL的新手,尤其是在安全方面,我只希望你们中的一些人能够在这里提供帮助。我知道,事实上,我已经使用的一些程序有助于安全(例如:我以前在定义查询参数时没有使用:pname。这导致SQL将“values”等提交解释为实际命令;drop table dbname;将我从未执行的命令中解救出来的一件事是将空格转换为下划线) “search_sub

这个问题无处不在,我看到了很多答案。很多人建议使用mysql\u real\u escape\u字符串,但这不是一个选项,因为它现在已经贬值了。 作为PHP/SQL的新手,尤其是在安全方面,我只希望你们中的一些人能够在这里提供帮助。我知道,事实上,我已经使用的一些程序有助于安全(例如:我以前在定义查询参数时没有使用:pname。这导致SQL将“values”等提交解释为实际命令;drop table dbname;将我从未执行的命令中解救出来的一件事是将空格转换为下划线)

“search_submit.PHP”中的PHP代码

<?php
$pname=str_replace(' ','_',strtolower($_GET['pname']));
require 'connection.php';
  if(isset($_GET['pname'])){

  if(preg_match("/\w/i", $_GET['pname'])){
   $query="SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE   SCHEMA_NAME = :pname;";
           $query_params = array( 
             ':pname' => str_replace(' ','_',strtolower($_GET['pname']))
        );
   $prep=$conn->prepare($query);
   $result=$prep->execute($query_params) or die("failed!");
   $row = $prep->fetch(); 
        if($row) 
        { 
            die("Exists"); 
        }
        else{
            echo("doesn't");
        }
  }
  }
  else{
  echo  "<p>Error</p>";
  }
?>

你可以在评论博客上询问的代码评论问题,这里是你提问的时间,你有错误。Will do。我不知道存在这样的问题,看到很多人在这里问类似的问题。抱歉。一个简单的方法是自己尝试攻击?
<form  method="get" action="search_submit.php"  id="searchform">
  <input  type="text" name="pname">
  <input  type="submit" name="input" value="Search">