首页
学习
活动
专区
圈层
工具
发布

phpinfo没有mysqli

基础概念

phpinfo() 是一个 PHP 函数,用于输出关于 PHP 配置的详细信息,包括已安装的扩展、环境变量、PHP 版本等。mysqli 是 PHP 的 MySQL 扩展,用于与 MySQL 数据库进行交互。

相关优势

  • mysqli 提供了面向对象和过程化的 API,使得与 MySQL 数据库的交互更加灵活和方便。
  • 支持最新的 MySQL 协议,能够利用 MySQL 的新特性和性能改进。

类型

  • 过程化风格:使用函数调用进行数据库操作。
  • 面向对象风格:使用类和对象进行数据库操作。

应用场景

  • Web 应用程序中需要与 MySQL 数据库进行交互的场景。
  • 需要执行复杂的 SQL 查询和事务处理的场景。

问题原因及解决方法

如果 phpinfo() 没有显示 mysqli 扩展,可能是以下原因:

  1. 未安装 mysqli 扩展
    • 在 Linux 系统上,可以通过以下命令安装:
    • 在 Linux 系统上,可以通过以下命令安装:
    • 在 Windows 系统上,需要下载并安装相应的 PHP 扩展包。
  • 未启用 mysqli 扩展
    • 检查 php.ini 文件,确保以下行未被注释:
    • 检查 php.ini 文件,确保以下行未被注释:
    • 或者对于 PHP 7.0 及以上版本:
    • 或者对于 PHP 7.0 及以上版本:
  • 配置文件路径错误
    • 确保 php.ini 文件路径正确,并且 PHP 能够找到该文件。

示例代码

以下是一个简单的示例,展示如何使用 mysqli 连接到 MySQL 数据库:

代码语言:txt
复制
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";

// 执行查询
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 结果";
}
$conn->close();
?>

参考链接

通过以上步骤和示例代码,你应该能够解决 phpinfo() 没有显示 mysqli 扩展的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHPInfo信息泄露

0x01 漏洞描述 - PHPInfo信息泄露 - PHPInfo()函数信息泄露漏洞常发生在一些默认安装的应用程序,比如phpStudy、XAMPP。...默认安装完成后,没有及时删除这些提供环境测试的文件,比较常见的为phpinfo.php、php-info.php、1.php、test.php、info.php等。...PHPInfo页面包含了大量的关于PHP的当前状态环境信息、PHP的编译选项和扩展、操作系统版本信息、服务器系统变量信息、Web应用物理路径信息等等,利用这些信息配合其他漏洞可能导致网站被渗透或者系统提权等危害...0x02 漏洞等级 威胁级别 高危 中危 低危 0x03 漏洞验证 使用dirsearch等一些目录扫描工具扫描目标网站获取泄露phpinfo()函数相关的文件。...0x04 漏洞修复 限制PHPInfo相关文件的访问权限。 删除正式部署环境中的PHPInfo相关文件。 修改php.ini配置文件参数,禁用phpinfo()函数。

4.6K30
  • PHP和PHPINFO

    PHPInfo()函数主要用于网站建设过程中测试搭建的PHP环境是否正确,很多网站在测试完毕后并没有及时删除,因此当访问这些测试页面时,会输出服务器的关键信息,这些信息的泄露将导致服务器被渗透的风险...++支持的程序++ 可以通过phpinfo()查看一些特殊的程序服务,在没有思路的情况下,可以着重找一下ssrf 3....php phpinfo(); ?> 把它保存为phpinfo.php,上传到服务器上,然后访问这个 PHP 文件。 如果看到里面有 Zend Optimizer 的版本信息。...论坛了,其实这 是一个误区,因为你没有确认你的php是否加载上了mysql支持。phpinfo就可以很好的检验到。...如果你的 phpinfo页面没有列出mysql模块扩展,那说明你的环境没有配置好 扩展模块 php的其他扩展模块吧,比如mbstring,是支持宽字符集;ftp,这是支持Discuz!

    1.7K10

    Jarvis OJ phpinfo

    > 前言 题目直接给出了 phpinfo 信息,作为 CTF 的题来说,一定有其特别的意义。 另外,在实战中也是重要的信息泄露,不熟悉的同学可参考 phpinfo 可以告诉我们什么。...遇到这种情况,可直接拿下来与默认的 phpinfo 进行文件对比,或许可以迅速找到突破口。 困境 看到 __construct() 和 __destruct() 两个魔术方法,极有可能是反序列化的题。...,__destruct() 中有 eval($this->mdzz); 如果 $this->mdzz 可控的话,这就是一个明显的 webshell 了,可惜 mdzz 在构造函数中就限死了,而且这里并没有变量覆盖的漏洞...session.upload_progress.name[=PHP_SESSION_UPLOAD_PROGRESS] : 如果 _POST[session.upload_progress.name]没有被设置...> 如果不指定,PHP 将默认使用 “php“ 作为 session 序列化的方法,payload 及结果如下: PS:不用纠结 Content-Type,这个对解题没有影响

    76930

    PHP中的MySQLi扩展学习(一)MySQLi介绍

    PHP中的MySQLi扩展学习(一)MySQLi介绍 关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...什么是 MySQLi MySQLi 扩展允许我们访问 MySQL4.1 及以上版本的数据库所提供的功能。...本身它们其实并没有什么太大的差别,不过现代化的大型框架中基本都会将 PDO 作为默认的数据库连接来进行封装,毕竟它的可移植性可以方便这些通用框架连接不同的数据库。...$mysqli = mysqli_connect("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT...$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM

    4K20

    PHP中的MySQLi扩展学习(三)mysqli的基本操作

    PHP中的MySQLi扩展学习(三)mysqli的基本操作 我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种...在实例化过程中,我们并没有给 mysqli 的构造函数传递任何的参数,而是使用 real_connect() 方法来传递数据库服务器信息并建立连接。...而 more_results() 方法就是判断是否还有更多的语句没有执行。 use_result 在上面的测试代码中,获得每一条语句的执行结果使用的是 use_result() 这个方法。...也就是说,在 mutli_query() 的时候,这些语句并没有马上执行,而是在调用 use_result() 时,才会执行当前的这条语句。...这就是它的特点,它也并没有直接将结果集的信息保存在程序的内存中。所以,use_result() 方法最大的好处就是占用内存小,适合大量查询的遍历,缺点则是每次都要去数据库查询,速度慢。

    4.3K20

    PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句

    所以在这里,我们就不再多讲理论方面的东西了,直接上代码来看看 MySQLi 中这两大特性与 PDO 在使用上的区别。 事务处理 首先,我们还是要让 MySQLi 对于错误的语句也报出异常来。...而在 MySQLi 中,我们则需要指定 MySQLi_Driver 对象中的报错属性为抛出异常,很明显,MySQLi_Driver 就是 MySQLi 的驱动对象。...// 使用异常处理错误情况 $driver = new mysqli_driver(); $driver->report_mode = MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT...try { // 开始事务 $mysqli->begin_transaction(); $mysqli->query("insert into tran_innodb (name...首先是我们的 MySQLi 中的占位符只有 ? 问号占位。另外也只有 bind_param() 没有类似于 PDO 中的 bindValue() 方法。

    3.8K00

    PHP连接MySQL方式

    MySQLi 和 PDO 有它们自己的优势:PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。...---- MySQLi 和 PDO 连接 MySQL 实例在本章节及接下来的章节中,我们会使用以下三种方式来演示 PHP 操作 MySQL:MySQLi (面向对象)MySQLi (面向过程)PDO -...可以通过 phpinfo() 查看是否安装成功: ---- PDO 安装For可以通过 phpinfo() 查看是否安装成功: ---- 连接 MySQL在我们访问 MySQL 数据库前,我们需要先连接到数据库服务器...如果没有指定,则会抛出异常。 ---- 关闭连接连接在脚本执行完后会自动关闭。...你也可以使用以下代码来关闭连接: 实例 (MySQLi - 面向对象) $conn->close(); 实例 (MySQLi - 面向过程) mysqli_close($conn); 实例 (PDO

    8.3K00

    PHP中的MySQLi扩展学习(六)MySQLI_result对象操作

    PHP中的MySQLi扩展学习(六)MySQLI_result对象操作 在之前的文章中,我们就已经接触过 MYSQLI_result 相关的内容。它的作用其实就是一个查询的结果集。...但在 MySQLi 中,会把查询到的结果也放入一个对象中,这就是 MySQLI_result 对象。...MySQLI_result 对象属性 首先,我们要通过一段查询来获得一个 MySQLI_result 对象。...不少同学会发现,current_field 和 lengths 好像并没有什么实际的内容,其实这两个属性是需要在特定操作下才会显示内容的,比如 lengths 是要在 fetch() 结果集之后才会有信息的..." // ["password"]=> // string(3) "666" // ["salt"]=> // string(2) "k6" // } 在这里我们没有指定类

    4.3K10

    PHP中的MySQLi扩展学习(三)mysqli的基本操作

    $mysqli = new mysqli();$mysqli->real_connect("localhost", "root", "", "blog_test");var_dump($mysqli);...在实例化过程中,我们并没有给 mysqli 的构造函数传递任何的参数,而是使用 real_connect() 方法来传递数据库服务器信息并建立连接。...而 more_results() 方法就是判断是否还有更多的语句没有执行。 use_result 在上面的测试代码中,获得每一条语句的执行结果使用的是 use_result() 这个方法。...也就是说,在 mutli_query() 的时候,这些语句并没有马上执行,而是在调用 use_result() 时,才会执行当前的这条语句。...这就是它的特点,它也并没有直接将结果集的信息保存在程序的内存中。所以,use_result() 方法最大的好处就是占用内存小,适合大量查询的遍历,缺点则是每次都要去数据库查询,速度慢。

    4.2K00

    文件包含之通过phpinfo去Getshell

    1.phpinfo信息利用 phpinfo文件泄露一直被大家所忽视,但其实phpinfo可以为攻击渗透测试人员提供很多的信息。 1.system ? 提供服务器所在的操作系统的信息。...这次通过phpinfo来getshell的关键,phpinfo可以让我们获得临时文件路径。...向phpinfo页面post恶意代码,可以在_FILES[“file1”]中看到上传的临时文件,如果该网站存在文件包含漏洞,便可以将恶意代码存储我们已知的绝对路径去包含它getshell。...2.通过phpinfo去getshell 上面介绍了一下phpinfo的基本信息。接下来我直接演示如何通过phpinfo去getshell。...发现目标网站页面存在文件包含漏洞,并且在网站根目录发现phpinfo页面。 ? ? 这样我们就可以直接使用漏洞利用脚本。脚本如下: #!

    5.3K20

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 MySQLi...; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt->bind_param...; $id = 's'; $username='mysqli_username'; $password='mysqli_password'; $salt = 'mysqli_salt'; $stmt-...可以看出,MySQLI_STMT 的错误属性和信息基本和 MySQLi 对象的是一样的。 列绑定 除了请求查询语句参数的绑定之外,MySQLI_STMT 也是支持直接绑定列的。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/8.PHP中的MySQLi扩展学习(五)MySQLI_STMT

    3.4K10

    2024全网最全面及最新且最为详细的网络安全技巧 九之文件包含漏洞典例分析POC;EXP以及 如何防御和修复(4)

    上传文件以获取phpinfo信息,获取上传缓存路径 # 这里上传一个包含phpinfo()的文件 phpinfo_payload = 'phpinfo(); ?...随后我们就可以轻松getshell: LFI+php7崩溃(7.0-7.19之间) 前一题我们能做,得益于phpinfo的存在,但如果没有phpinfo的存在,我们就很难利用上述方法去getshell。...= @new mysqli($dbhost, $dbuser, $dbpass, $dbname); // 如果连接失败,输出错误信息并退出 if ($mysqli->connect_errno...$mysqli->connect_error); } $mysqli->set_charset("utf8"); // 设置字符集为 UTF-8 // 准备 SQL 查询语句...$mysqli->connect_error); } $mysqli->set_charset("utf8"); // 设置字符集为 UTF-8 // 准备 SQL 查询语句

    1.1K10
    领券