{"id":15041094,"url":"https://github.com/caohao-go/ycdatabase","last_synced_at":"2025-04-14T19:36:29.993Z","repository":{"id":54416497,"uuid":"158173222","full_name":"caohao-go/ycdatabase","owner":"caohao-go","description":"The lightest php database framework written in c language, built in php extension,  for mysql","archived":false,"fork":false,"pushed_at":"2021-02-19T07:59:35.000Z","size":5328,"stargazers_count":137,"open_issues_count":2,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-28T08:01:46.432Z","etag":null,"topics":["c","connection-pool","db","php-extension"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caohao-go.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-19T06:33:43.000Z","updated_at":"2024-06-26T07:26:22.000Z","dependencies_parsed_at":"2022-08-13T15:00:45.644Z","dependency_job_id":null,"html_url":"https://github.com/caohao-go/ycdatabase","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caohao-go%2Fycdatabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caohao-go%2Fycdatabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caohao-go%2Fycdatabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caohao-go%2Fycdatabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caohao-go","download_url":"https://codeload.github.com/caohao-go/ycdatabase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248946857,"owners_count":21187586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","connection-pool","db","php-extension"],"created_at":"2024-09-24T20:45:32.251Z","updated_at":"2025-04-14T19:36:29.961Z","avatar_url":"https://github.com/caohao-go.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](./README.md) | 中文\n\n数据库 ORM 用户指南\n===\n\n## 目录\n  - 介绍\n  - 安装环境\n  - 创建测试表\n  - 在linux中编译ycdatabase\n  - Start ycdatabase\n  - 初始化ycdb连接\n  - 原生SQL查询\n  - 错误处理\n  - Where 语句\n  - Select 语句\n  - Insert 语句\n  - Replace 语句\n  - Update 语句\n  - Delete 语句\n  - 完整的例子\n  - 数据库事务\n  - 数据缓存\n  - PHP数据库连接池\n  - Redis 连接池方案\n\n## 介绍\n  1、快速 - ycdb是一个为PHP扩展写的纯C语言写的mysql数据库ORM扩展，众所周知，数据库ORM是一个非常耗时的操作，尤其对于解释性语言如PHP，而且对于一个项目来说，ORM大多数情况能占到项目很大的一个比例，所以这里我将MySQL的ORM操作用C语言实现，利用C语言的性能，提升ORM的性能。\u003cbr\u003e\n  2、安全 - ycdb 能通过参数绑定的方式解决SQL注入的问题，而且预绑定能够避免数据库每次都编译SQL，性能更好。\u003cbr\u003e\n  3、强大 - 便捷的调用方式，强大的功能支持\u003cbr\u003e\n  4、简单 - 使用和学习非常简单，交互友好。\u003cbr\u003e\n  5、数据缓存 - ycdb支持数据缓存，你可以采用redis作为介质来缓存数据库的数据，但是记得在update、insert、delete 操作涉及到与缓存数据相关的数据修改时，需要删除您的缓存，以保证数据一致性。\u003cbr\u003e\n  6、连接池 - ycdb通过一种特殊的方式来建立一个稳定的与MySQL之间的连接池，性能至少能提升30%，按照 PHP 的运行机制，长连接在建立之后只能寄居在工作进程之上，也就是说有多少个工作进程，就有多少个长连接，打个比方，我们有 10 台 PHP 服务器，每台启动 1000 个 PHP-FPM 工作进程，它们连接同一个 MySQL 实例，那么此 MySQL 实例上最多将存在 10000 个长连接，数量完全失控了！而且PHP的连接池心跳机制不完善\u003cbr\u003e\n  \n## 安装环境\n- PHP 7.0 + \n- 需要安装PDO扩展\n\n## 创建测试表\n```sql\nCREATE TABLE `user_info_test` (\n  `uid` int(11) NOT NULL COMMENT 'userid' AUTO_INCREMENT,\n  `username` varchar(64) NOT NULL COMMENT 'username',\n  `sexuality` varchar(8) DEFAULT 'male' COMMENT 'sexuality：male - 男性  female - 女性',\n  `age` int(11) DEFAULT 0 COMMENT 'age',\n  `height` double(11,2) DEFAULT 0 COMMENT 'height of a person, 身高',\n  `bool_flag` int(11) DEFAULT 1 COMMENT 'flag',\n  `remark` varchar(11) DEFAULT NULL,\n  PRIMARY KEY (`uid`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='userinfo';\n```\n\n## linux环境编译ycdatabase\n```\n//// /path/to 是你的 PHP7 安装路径\n$ cd ~/ycdatabase/ycdatabase_extension\n$ /path/to/phpize\n$ chmod +x ./configure\n$ ./configure --with-php-config=/path/to/php-config\n$ make \n$ make install\n```\n\n## 更多参考文档请到 CSDN\nhttps://blog.csdn.net/caohao0591/article/details/84390713\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaohao-go%2Fycdatabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaohao-go%2Fycdatabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaohao-go%2Fycdatabase/lists"}