从入门到精通:PHP与MySQL交互的12个实战技巧,资深架构师亲授

第一章:PHP与MySQL交互概述

在动态网页开发中,PHP 与 MySQL 的结合是构建数据驱动应用的核心技术之一。PHP 作为服务器端脚本语言,能够处理表单数据、管理会话并生成动态页面内容;而 MySQL 作为关系型数据库管理系统,负责持久化存储和高效检索结构化数据。两者通过扩展接口实现通信,使开发者能够在 Web 应用中执行增删改查(CRUD)操作。

连接数据库的基本方式

PHP 提供多种方式连接 MySQL 数据库,最常用的是使用 mysqli 扩展或 PDO(PHP Data Objects)。以下是一个使用 mysqli 进行连接的示例:
<?php
// 定义数据库连接参数
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'test_db';

// 创建数据库连接
$conn = new mysqli($host, $username, $password, $database);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error); // 输出错误信息并终止脚本
}
echo "数据库连接成功";
?>
上述代码首先实例化 mysqli 类,传入主机、用户名、密码和数据库名。若连接出错,connect_error 属性将返回错误信息。

常见操作类型

典型的数据库交互包括以下操作:
  • 查询数据(SELECT)——从表中获取记录
  • 插入数据(INSERT)——向表中添加新记录
  • 更新数据(UPDATE)——修改已有记录
  • 删除数据(DELETE)——移除指定记录
操作类型SQL 关键字用途说明
读取SELECT检索符合条件的数据行
创建INSERT向数据表插入新条目
更新UPDATE修改现有数据内容
删除DELETE清除指定数据记录

第二章:环境搭建与基础连接

2.1 搭建本地开发环境:XAMPP与MySQL配置

安装与启动XAMPP
XAMPP是一款集成Apache、MySQL、PHP和phpMyAdmin的本地服务器套件。下载对应操作系统的版本后,解压并运行安装程序。安装完成后,启动XAMPP控制面板,依次启动Apache和MySQL模块,确保状态显示为“Running”。
配置MySQL基础设置
首次使用时建议修改MySQL默认密码以增强安全性。可通过phpMyAdmin界面访问数据库管理页面,默认地址为:http://localhost/phpmyadmin。登录后进入“用户账户”选项,选择root@localhost用户进行密码更改。
验证数据库连接
创建测试PHP文件以确认环境正常工作:
<?php
$host = 'localhost';
$user = 'root';
$pass = ''; // 若已设密码,请替换为空字符串
$conn = new mysqli($host, $user, $pass);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "MySQL连接成功!";
?>
该脚本通过mysqli类尝试建立数据库连接,若输出“连接成功”,则表示配置无误。参数说明:$host指数据库主机地址,$user为用户名,$pass为密码(初始为空)。

2.2 使用PDO建立安全的数据库连接

在PHP开发中,PDO(PHP Data Objects)提供了统一的数据库访问接口,支持多种数据库驱动,并具备更强的安全性与灵活性。
启用持久化连接
通过设置DSN(数据源名称)和连接选项,可建立安全的数据库连接:
$dsn = 'mysql:host=localhost;dbname=blog;charset=utf8mb4';
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
    PDO::ATTR_PERSISTENT         => true
];
try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    die("数据库连接失败: " . $e->getMessage());
}
上述代码中,PDO::ATTR_ERRMODE设为异常模式便于错误追踪,PDO::ATTR_EMULATE_PREPARES关闭模拟预处理语句,确保真实预处理,防止SQL注入。
连接参数说明
  • DSN:包含主机、数据库名和字符集,utf8mb4支持完整UTF-8编码;
  • ATTR_PERSISTENT:启用持久连接提升性能;
  • ERRMODE_EXCEPTION:确保错误以异常形式抛出。

2.3 连接管理与持久化策略实践

在高并发系统中,合理管理数据库连接并制定有效的持久化策略至关重要。频繁创建和销毁连接会带来显著性能开销,因此引入连接池机制成为标准实践。
连接池配置示例
db.SetMaxOpenConns(100)
db.SetMaxIdleConns(10)
db.SetConnMaxLifetime(time.Hour)
上述代码设置最大打开连接数为100,避免资源耗尽;保持10个空闲连接以提升响应速度;连接最长存活时间为1小时,防止长时间运行的连接出现异常。
持久化策略选择
  • 写前日志(WAL):保障数据持久性,适用于高写入场景;
  • 定期快照:快速恢复状态,降低重启加载时间;
  • 异步刷盘:平衡性能与可靠性,减少I/O阻塞。
结合使用连接池与合理的持久化机制,可显著提升系统的稳定性与吞吐能力。

2.4 处理连接异常与错误日志记录

在分布式系统中,网络连接异常是不可避免的。为确保服务的高可用性,必须实现健壮的异常处理机制。
重试机制与指数退避
采用指数退避策略可有效缓解瞬时故障带来的影响。以下是一个使用Go语言实现的重试逻辑示例:
func retryWithBackoff(operation func() error, maxRetries int) error {
    for i := 0; i < maxRetries; i++ {
        if err := operation(); err == nil {
            return nil
        }
        time.Sleep(time.Duration(1 << i) * time.Second) // 指数退避
    }
    return errors.New("操作重试失败")
}
该函数通过位移运算计算等待时间,每次重试间隔呈指数增长,避免频繁请求加重网络负担。
结构化日志记录
使用结构化日志便于后期分析和监控。推荐使用JSON格式输出错误信息:
  • 包含时间戳、服务名、请求ID等上下文信息
  • 明确标注错误级别(如error、warn)
  • 记录调用栈和底层错误原因

2.5 测试连接稳定性与性能基准

在分布式系统部署完成后,必须对节点间的网络连接进行稳定性与性能评估。使用 ping 和 traceroute 可初步检测延迟与路径可靠性。
使用iperf3进行带宽测试
# 服务端启动
iperf3 -s

# 客户端测试(持续10秒,多线程)
iperf3 -c 192.168.1.100 -t 10 -P 4
该命令通过建立TCP连接测量最大吞吐量。-P 4启用4个并行流,模拟高并发场景,适用于评估负载均衡能力。
连接稳定性指标汇总
指标目标值测量工具
平均延迟<50msping
丢包率<0.1%fping
带宽利用率>90%iperf3

第三章:数据操作核心方法

3.1 使用预处理语句防止SQL注入

在Web应用开发中,SQL注入是最常见的安全漏洞之一。直接拼接用户输入到SQL查询中极易引发攻击。预处理语句(Prepared Statements)通过将SQL结构与数据分离,有效阻断恶意注入。
预处理语句工作原理
数据库预先编译SQL模板,参数以占位符形式存在,后续传入的数据仅作为纯值处理,不会改变原有语义。
代码示例(Go语言)

stmt, err := db.Prepare("SELECT id, name FROM users WHERE age > ?")
if err != nil {
    log.Fatal(err)
}
rows, err := stmt.Query(18) // 参数18作为值传入,不参与SQL解析
if err != nil {
    log.Fatal(err)
}
上述代码中,? 是参数占位符,即使传入恶意字符串也无法改变SQL逻辑,从根本上防御注入攻击。
  • 预编译:SQL结构提前确定
  • 参数绑定:数据以安全方式绑定
  • 执行隔离:数据不参与语义解析

3.2 执行增删改查操作的最佳实践

在进行数据库的增删改查(CRUD)操作时,应优先使用预编译语句以防止SQL注入。参数化查询能有效隔离代码与数据,提升安全性。
使用预编译语句示例
-- 安全的参数化查询
PREPARE stmt FROM 'SELECT * FROM users WHERE id = ?';
SET @user_id = 1001;
EXECUTE stmt USING @user_id;
该语句通过占位符 ? 接收外部输入,避免恶意拼接SQL字符串。
批量操作优化性能
  • 批量插入时使用 INSERT INTO ... VALUES (...), (...) 减少网络往返
  • 删除操作应结合事务,确保中途失败可回滚
  • 更新操作建议添加条件索引,避免全表扫描
合理设计CRUD逻辑,不仅能提升系统稳定性,还能显著降低数据库负载。

3.3 事务控制与原子性操作实现

在分布式系统中,事务控制是保障数据一致性的核心机制。为确保多个操作的原子性,常采用两阶段提交(2PC)或基于消息队列的最终一致性方案。
原子性保障机制
通过数据库事务或分布式事务协调器,确保一组操作要么全部成功,要么全部回滚。例如,在微服务架构中使用 Saga 模式管理跨服务事务:

func transferMoney(ctx context.Context, from, to string, amount float64) error {
    tx, err := db.BeginTx(ctx, nil)
    if err != nil {
        return err
    }
    defer tx.Rollback()

    _, err = tx.Exec("UPDATE accounts SET balance = balance - ? WHERE id = ?", amount, from)
    if err != nil {
        return err
    }
    _, err = tx.Exec("UPDATE accounts SET balance = balance + ? WHERE id = ?", amount, to)
    if err != nil {
        return err
    }

    return tx.Commit()
}
上述代码通过显式事务控制,保证扣款和入账操作的原子性。若任一操作失败,事务将回滚,避免资金丢失。
常见事务模式对比
模式一致性性能适用场景
本地事务强一致高单库操作
Saga最终一致中跨服务业务

第四章:高级查询与性能优化

4.1 索引设计与查询执行计划分析

合理的索引设计是提升数据库查询性能的核心手段。通过为高频查询字段建立B+树索引,可显著减少数据扫描行数。
复合索引的最佳实践
创建复合索引时应遵循最左前缀原则。例如,在用户表中按 (status, created_at) 建立联合索引:
CREATE INDEX idx_status_created ON users (status, created_at);
该索引可有效支持以 status 为条件的查询,或同时使用两个字段的范围查询,避免全表扫描。
执行计划解读
使用 EXPLAIN 分析SQL执行路径:
EXPLAIN SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC;
输出中的 key 字段显示实际使用的索引,type 为 ref 或 range 表示索引有效,Extra 中出现 Using index condition 表明启用了索引下推优化。
列名含义
rows预估扫描行数,越小越好
filtered按条件过滤后剩余的百分比

4.2 分页查询优化与大数据集处理

在处理大规模数据集时,传统基于 OFFSET 的分页方式会导致性能急剧下降。随着偏移量增大,数据库需扫描并跳过大量记录,造成 I/O 资耗上升。
基于游标的分页策略
采用游标(Cursor)分页可显著提升效率,尤其适用于时间序列或有序主键场景。其核心思想是利用上一页的最后一条记录值作为下一页的查询起点。
SELECT id, user_name, created_at 
FROM users 
WHERE created_at < '2024-01-01 00:00:00' 
  AND id < 10000 
ORDER BY created_at DESC, id DESC 
LIMIT 20;
该 SQL 利用复合条件避免全表扫描,created_at 和 id 联合确保唯一排序,配合索引可实现毫秒级响应。
分页性能对比
分页方式查询复杂度适用场景
OFFSET/LIMITO(n)小数据集
游标分页O(log n)大数据集、实时流

4.3 使用存储过程提升交互效率

在高并发数据库操作中,频繁的网络往返会显著影响系统性能。使用存储过程可将复杂业务逻辑封装于数据库端,减少客户端与服务器之间的通信次数。
存储过程的优势
  • 减少网络开销:多步操作在服务端一次性执行
  • 提升执行效率:预编译语句加快响应速度
  • 增强安全性:避免SQL注入风险
示例:用户积分更新存储过程
CREATE PROCEDURE UpdateUserScore(
  IN user_id INT,
  IN score_change INT
)
BEGIN
  UPDATE users 
  SET score = score + score_change 
  WHERE id = user_id;
  INSERT INTO score_logs(user_id, change, created_at) 
  VALUES (user_id, score_change, NOW());
END;
该存储过程将积分更新与日志记录封装为原子操作。参数 user_id 指定目标用户,score_change 表示增减值,确保数据一致性并简化应用层逻辑。

4.4 缓存机制在PHP-MySQL交互中的应用

在高并发Web应用中,频繁访问数据库会导致性能瓶颈。引入缓存机制可显著降低MySQL负载,提升响应速度。常见的做法是将查询结果暂存于内存存储如Redis或Memcached中。
缓存读取流程
  • 检查请求数据是否已存在于缓存中
  • 若命中,则直接返回缓存数据
  • 若未命中,则查询数据库并将结果写入缓存
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$key = 'user_123';
$cached = $redis->get($key);

if ($cached) {
    $data = json_decode($cached, true); // 缓存命中
} else {
    $data = fetchFromMySQL($key);       // 数据库查询
    $redis->setex($key, 3600, json_encode($data)); // 设置过期时间
}
?>
上述代码通过setex设置1小时过期时间,避免数据长期滞留。参数3600为TTL(Time To Live),单位秒,确保缓存与数据库间的数据一致性。

第五章:总结与进阶学习路径

持续构建云原生技术栈
现代后端开发已深度依赖容器化与编排系统。掌握 Kubernetes 不仅意味着会部署 Pod,更需理解 Operator 模式与自定义资源(CRD)。例如,使用 Go 编写一个简单的 Operator 来管理数据库实例:

// 示例:Kubernetes Operator 核心控制循环
func (r *DatabaseReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
    db := &databasev1.Database{}
    if err := r.Get(ctx, req.NamespacedName, db); err != nil {
        return ctrl.Result{}, client.IgnoreNotFound(err)
    }
    
    // 确保对应 StatefulSet 存在
    if !r.statefulSetExists(db) {
        if err := r.createStatefulSet(db); err != nil {
            log.Error(err, "无法创建 StatefulSet")
            return ctrl.Result{Requeue: true}, nil
        }
    }
    return ctrl.Result{RequeueAfter: 30 * time.Second}, nil
}
深入服务网格与可观察性
在微服务架构中,Istio 提供了流量管理、安全认证和遥测收集能力。生产环境中建议启用 mTLS 并配置请求追踪采样率为 10%,以平衡性能与调试需求。
  • 使用 OpenTelemetry 统一收集日志、指标与链路追踪数据
  • 将 Prometheus 抓取间隔调整为 15s,避免监控抖动影响服务性能
  • 通过 Grafana 配置 SLO 达标率看板,实时评估服务质量
推荐学习路径与资源矩阵
方向核心技术实践项目建议
云原生架构K8s, Helm, Kustomize搭建多集群 GitOps 流水线
高并发系统Go, Kafka, Redis实现订单削峰填谷系统
PHP|| PHP访问 MySQL 数据库(一) 1.PHP 访问 MySQL 数据库的一般步骤 (1)连接 MySQL 数据库服务器 函数:mysqli_connect () (2)选择 MySQL 数据库 函数:mysqli_select_db() (3)执行 SQL 语句 函数:mysqli_query() 操作有 5 种方式:查询、显示、插入、修改(更新)、删除 (4)关闭结果集 函数:mysqli_free_result() (5)关闭 MySQL 数据库服务器的连接 阅读详情

相关推荐

深度分析互联网大厂的二面试题,看你离年薪Million的资深架构师还有多大差距

在当前如此内卷的IT行业,如果你想脱颖而出,首先需要找到一个明确的前进方向,我们来看看如果你想成为一名资深架构师,需要具备哪些能力。我们来深入的分析一道来自互联网大厂的资深架构师面试题,通过这个案例,我们可以更好地理解资深架构师所需的关键技能和思维方式。

weixin_39108752的博客 2197

PHP MySQL

PHP MySQL 简介通过 PHP,我们可以连接和操作数据库。MySQL 是跟 PHP 配套使用的最流行的开源数据库系统,PHP 与 MySQL 结合是跨平台的。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_23347209的博客 2799

资深架构师分享:经验总结

用户说的需求往往是"表面需求",架构师要像"侦探"一样挖掘"隐性需求"。

移动开发前沿的博客 568

PHP—MySQL(PHP连接数据库)

本文讲述了PHP与MYSQL的合作方式,并演示了如何使用php与数据库进行连接,实现前端传输数据至后端的数据库中,实现前端界面与后端数据库的数据交互

m0_74249600的博客 9675

PHP从入门到精通第三版实战源码解析

PHP中的变量以符号开头,遵循动态类型机制,无需声明类型即可赋值。变量作用域主要分为局部、全局和静态三种,其中静态变量在函数调用间保持状态,提升性能。PHP支持八种数据类型:四种标量(intfloatstringbool)、两种复合(arrayobject)及两种特殊类型(resourceNULL例如:php$age = 25;// 整型// 浮点型// 字符串// 布尔型// 数组?内存中,PHP使用zval。

weixin_35886636的博客 1027

PHP与MySQL数据库连接的实践方法

htmltable {th, td {th {pre {简介:本文深入探讨了PHP如何连接MySQL数据库,包括推荐的方法和PDO扩展。介绍了如何创建连接、处理错误、确保安全性以及连接管理。通过这些实践方法,读者将掌握PHP与MySQL数据库交互的关键步骤,确保应用程序的健壮性和数据安全性。

weixin_42174098的博客 1121

php操作mysql数据库(增删改查)

1:连接到mysql php本身提供腿mysql数据库的支持,使用mysql_connect函数来连接,语法如下: resource mysql_connect([string server [, string username [,string password [, bool new_link [, int_client_flags]]]]]) 该函数用来打开或重复使用一个到...

小诸葛的博客 3万+

直流有刷电机控制 - 驱动电路(二)

1.如图所示为最常见的推挽驱动电路,我附加了具有正反转功能的电机驱动控制,正反转是由两个继电器组成。使用推挽电路来驱动NMOS管时充电电流和放电电流都很大,因此NMOS管导通快,关断也快,而且NMOS温度不会很高。下面来介绍一下该电路的原理。(1)PWM_MCU是由单片机给出的PWM波信号,该信号是由一些列高低电平的方波构成。当信号为高电平的时候Q3导通,经过R47再到Q5的g极,此时mos导通,如果是K1闭合是正转那么K2闭合就是反转。(2)当PWM低电平时使得Q3关断,Q6导通。

u011030644的博客 4720

PHP怎么从一名码农成为一名资深架构师(life)

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。 所以,80%码农干上许多年,还是做不了架构师,正在辛苦工作的程序员们,你有没有下面几种感觉? ​① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。 ② 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较多啊,听说最近Sw

lin123_00的博客 433

ENSP实验一:防火墙基础配置

配置client(内网)、FTP Server(外网)的IP地址。进入防火墙,输入密码:默认为admin@123。

Carohuan的博客 1万+

【CVPR 2025】清华:注意力状态空间模块,Mamba与注意力的超强组合,即插即用!

MambaIRv2提出了一种创新的图像恢复模型,通过引入注意力状态空间模块(ASSM)解决了Mamba模型因果建模限制问题。该模型结合语义引导邻域机制和注意力状态空间方程,实现了非因果建模,有效缓解了长距离衰减问题。实验表明,MambaIRv2在图像超分辨率、JPEG压缩伪影减少和图像去噪等任务中表现优异,参数更少但性能超越现有方法。

qq_43303160的博客 3040

如何用PHP打造毫秒级响应的数据上传系统?资深架构师亲授秘诀

掌握PHP工业数据实时上传的高效实现方案,解决高并发下毫秒级响应难题。适用于物联网、智能制造等场景,采用Swoole协程与消息队列优化传输性能。架构稳定、扩展性强,值得收藏。

CodeIsle的博客 690

领域驱动设计整理——实体和值对象设计

实体引言在领域驱动设计里,实体的设计可以说是通用语言的核心,也是最开始在模型划分中需要考虑的。怎么样设计实体和怎么样划分限界上下文同样重要。实体的概念就是要保证通用语言的完整性。领域驱动让设计实体的关注点从数据的属性和表的关联转化到了富有行为的领域概念上。 实体是具有可变性的,这是一个和值对象比较明显的区分,也即实体是可以持续得变化,持续得修改,并且具有唯一的标识。在设计实体的时候需要跳出CRUD的

马猴烧酒└(┐卍^o^)卍ドゥルルル~楪詩月「YUZURIHA SHIZUKI」 2万+

如何成为架构师php,怎么从一名码农成为一名资深架构师

一般来说技术团队的金字塔顶级常常是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大约平均不到 20%。而架构师也可以分为高级、中级、高级,江湖上真正高水平的架构师就更少了。所以,80%码农干上许多年,还是做不了架构师,正在辛劳工作的程序员们,你有没有下边几种觉得?① 我的工作就是按量完成领导还给我的任务,至于代码写的如何,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。② 我...

weixin_42363377的博客 329

全在这了!全国分省90米、30米、12.5米、5米DEM高程模型数据下载方式汇总

全在这了!全国分省90米、30米、12.5米、5米DEM高程模型数据下载方式汇总 SRTM15(450米)免费下载 https://pan.baidu.com/s/1eO0U6wfzs7YSe2EQdxRJ2Q提取码:o7am GMTED(250米)免费下载 https://pan.baidu.com/share/init?surl=nrbbdbhyNVQV46XwqzqLlg 提取码:V7X9 SRTM3 (90米)免费下载 https://pan.baidu.com/share/..

TuxinyunGIS的博客 1万+

学习记录(十一)--Pattern Recognition投稿记录

上一周特别忽然通知统计建模要答辩,确定是否晋级国赛,一直在准备答辩的事情,所以上一周没有总结周汇报,深刻检讨!!!不过结果是好的,我们组第二名晋级哦。这周主要是跟大家分享一下我投稿PR(Pattern Recognition)的一个时间线,以及投稿后的工作。一、PR从投稿到接收的时间线2025.4.3 Major Revision(ddl4.23) 当时正在弄比赛和另一个着急推进的文章2025.5.30 Minor Revision 这次小修基本上只有一些格式和简单一点点问题。

qq_54949944的博客 1918

【资深架构师亲授】PHP后端开发流程优化的8个致命细节

掌握高效PHP后端开发流程的关键细节,解决性能瓶颈与代码维护难题。资深架构师揭秘8个优化要点,涵盖请求处理、数据库设计、缓存策略等核心环节,提升系统稳定性与开发效率,值得收藏。

AlgoPerch的博客 811

一句话看懂 vibing-steampunk

摘要: vibing-steampunk(vsp)是一个连接SAP ABAP开发工具(ADT)与AI编码代理(如Claude、GitHub Copilot)的桥梁,通过MCP协议实现自动化代码读写、调试和部署。它利用ADT API直接访问SAP系统,绕过传统GUI操作,支持ECC和S/4HANA等环境。工具提供包分析、依赖检查、LUW行为识别等功能,显著提升ABAP项目维护效率。其创新Hyperfocused模式和方法级编辑大幅降低token消耗,而上下文压缩技术则优化了AI对ABAP代码的理解能力,特别适

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 114

我与Java Boy的10年-从小白到资深架构

大家好,我是你们的新朋友老王随聊。正值Java的27岁生日之际,今年也恰好是老王与Java相识的第10个年头了, 而这10年老王从自己的亲身经历我见证了Java技术的快速发展。 关于我与Java的故事,老王想从Java技术学习的三个阶段聊聊这10年来,我是如何从一个编程小白成长为一名资深架构师,我相信这些经历不论是对在校学生、或即将踏入职场的同学、亦或是正处于职场上升期的朋友都会有一些帮助和启发~~......

老王随聊 1万+

振动分析-46-设备振动监测和故障诊断能力提升需要理解和掌握的知识体系

提升振动分析能力对于确保机械设备的高效运行和预防故障至关重要。

qq_20466211的博客 664

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PHP怎么从一名码农成为一名资深架构师(收藏)

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。 所以,80%码农干上许多年,还是做不了架构师,正在辛苦工作的程序员们,你有没有下面几种感觉? ​① 我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。 ② 我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较多啊,听说最近Sw

lin123_00的博客 648

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

视频教程-Workerman入门到精通实战layIM聊天室-PHP

Workerman入门到精通实战layIM聊天室 多年一线互联网开发实战以及...

weixin_32555271的博客 1194

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

图书推荐|Bootstrap 5从入门到精通:视频教学版

内容包括Bootstrap 5的基本概念,使用Bootstrap 5的方法,Bootstrap的基本架构,Bootstrap的弹性布局,精通Bootstrap页面排版,使用CSS通用样式,常见CSS组件的使用,高级CSS组件的使用,卡片、旋转器和手风琴组件,认识JavaScript插件,精通JavaScript插件,Bootstrap表单的应用。《Bootstrap 5从入门到精通:视频教学版》详解Bootstrap 5框架的用法以及两个网站实战项目的。5.6 实战案例——设计商品信息管理页面 72。

quanzhankaifaqua的博客 756

博瑞森mysql培训_MySQL DBA高级视频教程 博瑞森一线DBA大神亲授

下载服务器:五号服务器---VIP资料下载八区\数据库专区游客,如果您要查看本帖隐藏内容请回复MySQL DBA高级视频教程 这个是我参与培训的,分享给大家学习,真正一线DBA大神亲授 全程高清,讲解很牛逼,内容偏向开发DBA与互联架构方向的,要进阶资深DBA的话,这个必看!总学时超过111个小时,起码要花3到4个月消化掌握!!!2017-9-7 22:40:52 上传下载附件 (47.32 KB...

weixin_31596631的博客 535

视频教程-sql语法入门 mysql语法入门 php操作mysql实战 视频教程-MySQL

sql语法入门 mysql语法入门 php操作mysql实战 视频教程 04...

weixin_34333199的博客 201

网易资深Java架构师:php转java

前言 本份文档内容涵盖: Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、 Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈,共1000多道面试题。 由于文档内容过多,所以只列举了以下目录部分,每个知识点都有更细化的内容! 一面 自我介绍 项目难度介绍 如何实现延时任务 如何实现限流 线程池的参数 能不能自己实现一个java.lang

m0_57501529的博客 155
上一篇: PHP单元测试从入门到精通:7个关键技巧让你的测试真正发挥作用
下一篇: 【PHP HTTP客户端实战指南】:掌握Guzzle与cURL高效请求技巧
QuickSolve
博客等级 码龄1年 137粉丝 2015原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值