Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 在sql注入的情况下从准备好的语句返回错误_Mysql_Prepared Statement - Fatal编程技术网

Mysql 在sql注入的情况下从准备好的语句返回错误

Mysql 在sql注入的情况下从准备好的语句返回错误,mysql,prepared-statement,Mysql,Prepared Statement,我试图测试我准备好的语句,该语句保护一个字段,以便在SQL注入的情况下获取错误消息。到目前为止,我尝试了数千次攻击,所有我给予的价值观都被接受了。我是否使用了错误的语法或攻击?我看不出问题出在哪里。这是我的密码: try { // $host = "localhost"; // $username = "root"; // $password = "root"; // $db_name = "po

我试图测试我准备好的语句,该语句保护一个字段,以便在SQL注入的情况下获取错误消息。到目前为止,我尝试了数千次攻击,所有我给予的价值观都被接受了。我是否使用了错误的语法或攻击?我看不出问题出在哪里。这是我的密码:

  try {
            // $host = "localhost";
           //  $username = "root";
           //  $password = "root";
           //  $db_name = "pokemon";
         $conn = new PDO('mysql:host='.$host.';dbname='.$db_name.';', $username, $password);
     // set the PDO error mode to exception
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $meldung="";
     $name =$_REQUEST['name'];
     $gewicht = $_REQUEST['Gewicht'];
     $größe =$_REQUEST['Größe'];
     $spezies = $_REQUEST['Spezies'];
     $stufe =$_REQUEST['Stufe'];
     $atacke =$_REQUEST['Attacke'];
     $array = explode(',', $_REQUEST['Attacke']);

     $stmt = $conn->prepare("INSERT INTO Pokemon (`Name`,`Gewicht`,`grosse`,`spezies`,`stufe`) VALUES (:Name, '".$gewicht."', '".$größe."', '".$spezies."', '".$stufe."')"); 


        $stmt->bindParam(':Name', $name);
        // $stmt->bindParam(':Gewicht', $gewicht);
        // $stmt->bindParam(':grosse', $größe);
        // $stmt->bindParam(':spezies', $spezies);
        // $stmt->bindParam(':stufe', $stufe);

    $stmt->execute();


     }
     catch(PDOException $e)
     {
      $meldung = "Error: " . $e->getMessage();
      echo $meldung;
      }

谢谢

您是否已使用包含单引号的文本(如
O'Brian
)填充了例如
$gewicht
)?如果sql注入出现错误消息,您的意思是什么?没有这样的事情,一个预先准备好的语句会逃逸参数以避免sql注入,但它不会寻找注入并警告您-如果这是您试图存档的内容。是的,这对大学来说是一个小任务,在sql注入的情况下,我们被要求返回一个错误。您的代码太复杂,无法进行简单的概念验证,而且无法运行,因为它甚至没有输入数据。我已经编写了一个,我确实得到了一个
PDOException
。你的意思是我应该直接在准备好的语句中使用变量,而不是绑定它吗??