• 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,真是够了。希望后来的不要出现这种问题,或许只是因为我是在自学哈哈。

  • 相关阅读:
    chrome Network 过滤和高级过滤
    python3 在webelement对象里面获取元素路径的方法
    Robot frawork关键字使用报错原因
    robotframework-autoitlibrary离线安装
    网络基础之网络协议篇
    eclipse查看jar包源代码
    对链接服务器进行查询
    数据库还原失败System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份
    sqlserver创建链接服务器
    5.0jemter(英文版)录制脚本,进行压力测试
  • 原文地址:https://www.cnblogs.com/yyx001000000001010101100101/p/6076158.html
Copyright © 2020-2023  润新知