北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

都说PHP性能差,但PHP性能真的差吗?

今天本能是想测试一个PDO持久化,会不会带来会话混乱的问题 先贴一下PHP代码, 代码丑了点,但是坚持能run就行,反正就是做个测试。

<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$user = 'root';
$password = 'root';

// 设置 PDO 选项,启用持久化连接
$options = [
    PDO::ATTR_PERSISTENT => true,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
];

try {
    // 创建持久化连接
    $pdo = new PDO($dsn, $user, $password, $options);

    $stmt = $pdo->prepare("INSERT INTO test_last_insert_id (uni) VALUES (:uni);");
    $uni = uniqid('', true);
    $stmt->bindValue(':uni', $uni);
    $aff = $stmt->execute(); //
    if ($aff === false) {
        throw new Exception("insert fail:");
    }
    $id = $pdo->lastInsertId();


    function getExecutedSql($stmt, $params)
    {
        $sql = $stmt->queryString;
        $keys = array();
        $values = array();

        // 替换命名占位符 :key with ?
        $sql = preg_replace('/\:(\w+)/', '?', $sql);

        // 绑定的参数可能包括命名占位符,我们需要将它们转换为匿名占位符
        foreach ($params as $key => $value) {
            $keys[] = '/\?/';
            $values[] = is_string($value) ? "'$value'" : $value;
        }

        // 替换占位符为实际参数
        $sql = preg_replace($keys, $values, $sql, 1, $count);

        return $sql;
    }


    $stmt = $pdo->query("SELECT id FROM test_last_insert_id WHERE uni = '{$uni}'", PDO::FETCH_NUM);
    $row = $stmt->fetch();
    $value = $row[0];
    if ($value != $id) {
        throw new Exception("id is diff");
    }

    echo "success" . PHP_EOL;

} catch (PDOException $e) {
    header('HTTP/1.1 500 Internal Server Error');
    file_put_contents('pdo_perisistent.log', $e->getMessage() . PHP_EOL);
    die('Database connection failed: ' . $e->getMessage());
} catch (Exception $e) {
    header('HTTP/1.1 500 Internal Server Error');
    file_put_contents('pdo_perisistent.log', $e->getMessage() . PHP_EOL);
    die('Exception: ' . $e->getMessage());
}

每次有人找我合影,都会想起一段青葱岁月

这2天,连续在上海影城做了2场分享。实在太多话想说,以至于原定6个小时,每次都拖到将近8小时。拖到下午6点多才结束。

不过分享结束后,我还有一件重要的事:和在场每一位观众合影,哪怕要额外再花半小时,甚至一小时。

我的同事们很心疼我,他们担心我的身体,经常想能否省掉这个环节。我很感谢他们。但只要场合允许,我还是固执的想当一个合影机器。

因为,每次有人问我“能和你合个影吗?”,我都会想起我的年少时光,想起一个至今没能满足的遗憾。

我在微软14年,有无数欢乐、无数收获。但如果要说遗憾,还真有一个:我至今都没有一张和比尔·盖茨的合影。

为什么微信消息只能在2分钟之内撤回?网友:不能更多或更少吗?

古人有云,“一言既出,驷马难追。”可见,对说出口的话是多么重视。可是,人总有说错话的时候啊~为了解决这个问题,微信就有了“撤回”的功能,对于发出2分钟以内的信息提供撤回选项:

用户长按发出的消息(包括图片),在菜单中选择撤回。

那么问题来了……为什么发出去的消息可以轻松撤回?微信是如何同时从双方手机上实现信息撤回的呢?


以MobleA给MobileB发送消息与消息撤回为例:

别再用雪花算法生成ID了!试试这个吧

今天聊聊服务器中唯一ID生成。唯一ID生成中雪花算法大家都比较熟,那如果加一个要求呢:

不连续的自增id

约定

  • 操作系统:CentOS release 6.8(64位)
  • 数据库版本:5.7.44

Python标准库中的七个“小众但神奇”的实用函数

如果你一直在使用Python,想必已经非常熟悉它极其丰富的标准库,这让开发变得高效且直接。虽然像json、datetime、re这样的热门模块经常被关注,但其实还有一批鲜为人知的函数常常被忽视。

ULID和UUID以及雪花ID哪个更好?


ULID、UUID 和雪花 ID 各有优劣,哪个更好取决于你的具体用例和需求。以下是几个需要考虑的关键点:

- ULID:

- ULID 是 Universally Unique Lexicographically Sortable Identifier 的缩写。

- ULID 是一个 128 位的标识符,旨在相对紧凑、URL 安全和词典排序。

服务器开发程序员必须搞清HTTPS通讯之证书



一、构建HTTPS网站

1. 获取证书和密钥对

1.1.1 自签名证书

Facebook 发布跨应用移动广告网络 Facebook Audience Network

Xingyu Cheno4分钟前

Audience Network是 Facebook 新发布的一个跨应用移动广告服务,以用户在社交网络上留下的信息作为基础,内容提供方可以在不同软件中识别用户并根据他们的资料有针对性地发放推广内容。

举例来说,你在 Facebook 上赞了某品牌的商品,那么当你在使用有关的第三方应用时就有可能看见该品牌向你投放的广告内容,与 Facebook 的其它移动广告服务一样,这些内容可能以横幅、弹窗或者原生的形式出现。

了解用户 - 识别用户 - 在第三方应用中投放广告,从表面上看,这无疑将移动端广告投放的个人定位精准度提高到了一个新高度。

服务器搭建(01)Gerrit服务器搭建 &amp; 内网访问

说明:本次服务器的搭建主要是在window上VMWare虚拟机上 搭建一个gerrit服务器 作为测试,了解gerrit服务器搭建的整个流程,最后确保 gerrit 可以在本机的ubuntu虚拟机上可以正常运行。

1 基本环境搭建与配置(针对ubuntu18.04):

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言