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

mysqli连接远程数据库

基础概念

mysqli 是 PHP 中用于与 MySQL 数据库进行交互的扩展。它提供了面向对象和过程式的 API,用于执行 SQL 查询、处理结果集以及管理数据库连接。

优势

  1. 性能:mysqli 是对 MySQL 数据库原生协议的优化,提供了比旧的 mysql 扩展更高的性能。
  2. 安全性:支持预处理语句,可以有效防止 SQL 注入攻击。
  3. 功能丰富:提供了事务处理、存储过程调用、多线程连接等功能。
  4. 持续维护:作为 PHP 官方推荐的 MySQL 扩展,mysqli 持续得到维护和更新。

类型

mysqli 连接可以分为两种类型:

  1. 持久连接:使用 mysqli_pconnect() 函数创建,连接在脚本执行完毕后不会关闭,而是保留在服务器端,以便后续请求重用。
  2. 非持久连接:使用 mysqli_connect() 函数创建,每次脚本执行完毕后会自动关闭连接。

应用场景

mysqli 适用于需要与 MySQL 数据库进行交互的各种 PHP 应用程序,包括但不限于:

  • Web 应用程序
  • RESTful API
  • 命令行工具
  • 定时任务脚本

连接远程数据库示例

以下是一个使用 mysqli 连接远程 MySQL 数据库的示例代码:

代码语言:txt
复制
<?php
$host = '远程数据库地址';
$user = '数据库用户名';
$password = '数据库密码';
$database = '数据库名';

// 创建连接
$conn = mysqli_connect($host, $user, $password, $database);

// 检查连接
if (!$conn) {
    die('连接失败: ' . mysqli_connect_error());
}

echo '连接成功';

// 执行查询
$sql = "SELECT id, name FROM users";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 关闭连接
mysqli_close($conn);
?>

遇到的问题及解决方法

问题:无法连接到远程数据库

原因:

  1. 防火墙设置:服务器防火墙可能阻止了外部连接。
  2. 数据库配置:MySQL 服务器可能未配置为允许远程连接。
  3. 网络问题:网络连接不稳定或存在其他网络问题。

解决方法:

  1. 检查防火墙设置:确保服务器防火墙允许外部连接到 MySQL 端口(默认是 3306)。
  2. 配置 MySQL 允许远程连接:
    • 编辑 MySQL 配置文件(通常是 my.cnf 或 my.ini),找到 [mysqld] 部分,添加或修改以下行:
    • 编辑 MySQL 配置文件(通常是 my.cnf 或 my.ini),找到 [mysqld] 部分,添加或修改以下行:
    • 重启 MySQL 服务。
    • 授权远程访问:
    • 授权远程访问:
  • 检查网络连接:确保网络连接稳定,可以使用 ping 或 telnet 命令测试连接。

参考链接

希望这些信息对你有所帮助!如果有其他问题,请随时提问。

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

相关·内容

  • php连接mysql数据库的几种方式(mysql、mysqli、pdo)

    php与mysql的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。...因此,这个扩展虽然可以与MySQL4.1.3或更新的数据库服务端 进行交互,但并不支持后期MySQL服务端提供的一些特性。由于太过古老,又不安全,所以已被后来的mysqli完全取代。...PHP的mysqli扩展,我们有时称之为MySQL增强扩展,可以用于使用 MySQL4.1.3或更新版本中新的高级特性。...不过其也有缺点, 就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择。 PDO是PHP Data Objects的缩写,其是PHP应用中的一个数据库抽象层规范。...PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要 连接的数据库服务器系统类型。

    9.1K80

    php基础编程-php连接mysql数据库-mysqli的简单使用

    很多php小白在学习完php基础后,或多或少要接触到数据库的使用。而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库。...PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器。...我简单的把php通过mysqli来连接mysql服务器分为5个步骤: 创建mysql连接 编辑sql语句,并执行返回结果 将返回的结果转为可以处理的数据结构,例如数组 释放本次查询的结果 释放本次连接.../*1.创建mysql连接*/ $conn = mysqli_connect($host, $username, $password, $dbname); //使用mysqli_connect()函数.../*4.释放本次查询的结果*/ mysqli_free_result($result); /*5.释放本次连接*/ mysqli_close($conn); ?

    7.6K10

    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)

    PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。...不过其也有缺点,就是只支持mysql数据库。如果你要是不操作其他的数据库,这无疑是最好的选择。 PDO是PHP Data Objects的缩写,是PHP应用中的一个数据库抽象层规范。...PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型,也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器,比如从Oracle 到MySQL...1.PHP与Mysql扩展(本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除),PHP原生的方式去连接数据库,是面向过程的 mysqli->connect_error);//诊断连接错误 } $mysqli->query("set names 'utf8';");//编码转化 $select_db = $mysqli->select_db

    10.6K40

    如何远程连接数据库

    大家在本地连接自己的数据库可能没有问题,但当服务器的时候就需要远程连接了,那么如何能够让远程的数据库被我们访问到呢,接下来就具体执行一下相关的操作,以我的为例,连接虚拟机中的数据库,操作系统是linux...1、登录数据库 mysql -uroot -p 2、进入mysql,查看host,没有%需要配置一下 use mysql select host,user,password from user;...执行完以上命令后,然后再查看一下,有了%之后说明配置成功 4、开放3306端口防火墙 firewall-cmd --permanent --add-port=3306/tcp,然后重启就可以了 5、检查远程是否可以连接...,在windows下使用navicat新建一个连接,输入相关信息,然后连接,看是否成功 点击连接,显示内容,说明数据库连接成功,可以远程操作了 附加知识,在centos7中查看ip地址的命令是ip

    4K20

    PHP怎么连接和操作MySQL数据库-MySQLi 面向过程的方式

    PHP连接和操作MySQL数据库的常用方式有3种,分别是MySQLi (面向对象),MySQLi (面向过程),PDO (面向对象)。...MySQLi和PDO 都是PHP的扩展,MySQLi只针对 MySQL 数据库,PDO则可以应用在十几种数据库中。而面向对象和面向过程是项目开发中两种不同的编程思想。...PHP与数据库的交互是先连接,再操作,最后关闭连接。其中操作包括插入,读取,修改,删除这四个基本的功能。以下演示的将是MySQLi (面向过程)的代码示例。...第一步 连接数据库 //数据库地址 $servername = "localhost"; //数据库账号 $username = "root"; //数据库密码 $password = "123456"...; //数据库名称 $database = 'testDB' // 创建连接 $conn = mysqli_connect($servername, $username, $password, $database

    4.4K10

    公网远程连接Redis数据库「内网穿透」

    Redis作为一款高速缓存的key value键值对的数据库,在许许多多的场景中广泛使用,由于是把数据存储在内存中,所以读写效率极高。...创建隧道映射本地端口 cpolar安装成功后,在命令行输入以下命令将本地6369端口下的redis暴露到公网 cpolar tcp 6379 出现如下界面表示成功,然后复制公网地址 使用redis图形化界面远程连接...redis,输入复制的tcp地址,点击测试连接 出现successful表示成功 注意:如果想要让隧道长期可访问,可以将其保存到配置文件中去,实现后台服务。...而我们可以为其配置一个固定的公网地址,方便后续长期远程。...4.1 保留一个固定tcp地址 登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为远程Redis数据库保留一个固定tcp地址: 地区:选择China vip 描述:即备注,可自定义 点击保留

    2K20
    领券