zoukankan      html  css  js  c++  java
  • DVWA--登录页面错误问题 469 | | PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:webDVWAdvwaincludesdvwaPage.inc.php:469

    1         // MySQL PDO Prepared Statements (for impossible levels)
    2         $db = new PDO('mysql:host=' . $_DVWA[ 'db_server' ].';dbname=' . $_DVWA[ 'db_database' ].';charset=utf8', $_DVWA[ 'db_user' ], $_DVWA[ 'db_password' ]);
    3         $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    4         $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    错误点如上 ↑

    解决方法适用条件:

             以下2项配置正确。

             extension = php_pdo.dll

             extension = php_pdo_mysql.dll

    错误原因:

    在:

              DVWAdvwaincludesdvwaPage.inc.php

    DVMA 默认的配置:

              $_DVWA[ 'default_security_level' ] = 'impossible';

    我们需要的实验环境一般都修改为:

              $_DVWA[ 'default_security_level' ] = 'low';

    注意这里有句注释:

              // MySQL PDO Prepared Statements (for impossible levels) 意思是为PDO的预设impossible等级的检查,因为实际用的是low 所以可以 咔嚓掉了

    正确做法:

              

            // MySQL PDO Prepared Statements (for impossible levels)
            //$db = new PDO('mysql:host=' . $_DVWA[ 'db_server' ].';dbname=' . $_DVWA[ 'db_database' ].';charset=utf8', $_DVWA[ 'db_user' ], $_DVWA[ 'db_password' ]);
            //$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            //$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);


    关于PDO,百度百科解释如下:

                  PDO一是PHP数据对象(PHP Data Object)的缩写。

                  并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器

                  PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层。

    重要的分界点:

                  PDO需要PHP5核心OO特性的支持,所以它无法运行于之前的PHP版本。

                  在Unix环境下PHP5.X以上版本中。

                  在Lnux环境下PHP5.X以上版本中。

     错误全码:

    PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in C:webDVWAdvwaincludesdvwaPage.inc.php:469
    Stack trace:
    #0 C:webDVWAdvwaincludesdvwaPage.inc.php(469): PDO->__construct('mysql:host=loca...', 'root', '123123')
    #1 C:webDVWAlogin.php(8): dvwaDatabaseConnect()
    #2 {main}
      thrown in C:webDVWAdvwaincludesdvwaPage.inc.php on line 469

      

            由于是第一次接触PHP,没有注意到注释,导致查了一晚上,嗯可以这么说晚上7点到夜里1点27,真是够了。希望后来的不要出现这种问题,或许只是因为我是在自学哈哈。

  • 相关阅读:
    最近在搞微信支付,说说流程,免得遗忘
    好记性不如烂笔头-Mysql查找如何判断字段是否包含某个字符串
    用jquery操作字体颜色覆盖当前页面的css设置
    页面白屏并且报错PHP Parse error: syntax error, unexpected end of file in 试了很久总算解决了
    bootstrap的datetimepicker.js的结束时间大于开始时间,当前日期之前的代码
    使用ClassLoader类装载器获取系统资源
    关于App class loader的总结
    ClassLoader 详解及用途(写的不错)
    webRequest
    Tomcat学习之ClassLoader
  • 原文地址:https://www.cnblogs.com/yyx001000000001010101100101/p/6076158.html
Copyright © 2011-2022 走看看