- 浏览: 231247 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
jun199061:
试了下 ,报无法加载DLL “libmySQL.dll”是怎么 ...
C# 连接mysql数据库 -
朋在无锡:
靠...上当了...晕
Xdebug + Wamp 2.0 的配置 -
w156445045:
博主,您好,请问为什么我这样做没效果啊?
artDialog简单用法 -
laikk:
将服务器端的所有返回值都设置成false 后,客户端还显示登录 ...
PHPRPC for php 登陆的实现 -
laikk:
将服务器端的所有返回值都设置成false 后,客户端还显示登录 ...
PHPRPC for PHP 读取数据
来源:http://www.yytweb.com/?s=article-13.html
源博客上的类,有些小问题(表前缀只对mysql进行了处理,sqlite的没有处理),下面的这个是我做过一些处理之后的类,我也测试过了,可以使用。感兴趣的朋友也可以继续扩展下。
源博客上的类,有些小问题(表前缀只对mysql进行了处理,sqlite的没有处理),下面的这个是我做过一些处理之后的类,我也测试过了,可以使用。感兴趣的朋友也可以继续扩展下。
<?php /** * 文件描述 PDO数据库操作类 * ================================================================= * 作 者 YYT<gyyst@126.com> * ================================================================= */ class db { private $config; private $db; public $querynum; public function mysql($host, $user, $password, $dbname, $tablepre = '', $charset = 'GBK') { $this->config['type'] = 'mysql'; $this->config['tablepre'] = $tablepre; $this->config['mysql']['host'] = $host; $this->config['mysql']['user'] = $user; $this->config['mysql']['password'] = $password; $this->config['mysql']['dbname'] = $dbname; $this->config['mysql']['charset'] = $charset; } public function sqlite($datafile,$tablepre = '') { $this->config['type'] = 'sqlite'; $this->config['sqlite']['file'] = $datafile; $this->config['tablepre'] = $tablepre; } private function connect() { if (isset($this->db)) { return true; } if ($this->config['type'] == 'mysql') { try{ $this->db = new PDO('mysql:host='.$this->config['mysql']['host'].';dbname='.$this->config['mysql']['dbname'], $this->config['mysql']['user'], $this->config['mysql']['password'], array(PDO::ATTR_PERSISTENT => true)); $this->db->query('SET NAMES '.$this->config['mysql']['charset']); } catch (PDOException $e) { exit('数据库连接失败:'.$e->getMessage()); } } if ($this->config['type'] == 'sqlite') { !file_exists($this->config['sqlite']['file']) && exit('没有找到SQLITE数据库'); $this->db = new PDO('sqlite:'.$this->config['sqlite']['file']); } !isset($this->db) && exit('不支持该数据库类型 '.$this->config['type']); } public function table($table) { return '`'.$this->config['tablepre'].$table.'`'; } public function strescape($str) { if ($this->config['type'] === 'mysql') { return !get_magic_quotes_gpc() ? addslashes($str) : $str; } if ($this->config['type'] === 'sqlite') { return str_replace('\'', '\'\'', $str); } return $str; } public function format_condition($condition) { if (is_array($condition)) { foreach ($condition as $key => $value) { $join[] = $key.' = \''.$this->strescape($value).'\''; } return ' WHERE '.join(' AND ', $join); } return $condition ? ' WHERE '.$condition : ''; } private function error() { if ($this->db->errorCode() != '00000') { $error = $this->db->errorInfo(); exit('SQL语句错误:'.$error['2']); } } public function query($sql) { $this->connect(); $result = $this->db->query($sql); $this->error(); $result->setFetchMode(PDO::FETCH_ASSOC); $this->querynum++; return $result; } public function exec($sql) { $this->connect(); $result = $this->db->exec($sql); $this->error(); $this->querynum++; return $result; } public function lastinsertid() { return $this->db->lastInsertId(); } public function fetchall($table, $field, $condition = '', $sort = '', $limit = '') { $condition = $this->format_condition($condition); $sort && $sort = ' ORDER BY '.$sort; $limit && $limit = ' LIMIT '.$limit; $sql = 'SELECT '.$field.' FROM '.$this->table($table).$condition.$sort.$limit; return $this->query($sql)->fetchall(); } public function fetch($table, $field, $condition = '', $sort = '') { $condition = $this->format_condition($condition); $sort && $sort = ' ORDER BY '.$sort; $sql = 'SELECT '.$field.' FROM '.$this->table($table).$condition.$sort.' LIMIT 1'; return $this->query($sql)->fetch(); } public function rowcount($table, $condition = '') { $condition = $this->format_condition($condition); $sql = 'SELECT COUNT(*) FROM '.$this->table($table).$condition; $result = $this->query($sql)->fetch(); return $result['COUNT(*)']; } public function get_fields($table) { if ($this->config['type'] == 'mysql') { $sql = 'DESCRIBE '.$this->table($table); $key = 'Field'; } else if ($this->config['type'] == 'sqlite') { $sql = 'PRAGMA table_info('.$this->table($table).')'; $key = 'name'; } $fields = $this->query($sql)->fetchall(); foreach ($fields as $value) { $result[] = $value[$key]; } return $result; } public function insert($table, $array) { if (!is_array($array)) { return false; } foreach ($array as $key => $value) { $cols[] = $key; $vals[] = '\''.$this->strescape($value).'\''; } $col = join(',', $cols); $val = join(',', $vals); $sql = 'INSERT INTO '.$this->table($table).' ('.$col.') VALUES ('.$val.')'; return $this->exec($sql); } public function update($table, $array, $condition) { if (!is_array($array)) { return false; } $condition = $this->format_condition($condition); foreach ($array as $key => $value) { $vals[] = $key.' = \''.$this->strescape($value).'\''; } $values = join(',', $vals); $sql = 'UPDATE '.$this->table($table).' SET '.$values.$condition; return $this->exec($sql); } public function delete($table, $condition) { $condition = $this->format_condition($condition); $sql = 'DELETE FROM '.$this->table($table).$condition; return $this->exec($sql); } } //例子 $db = new db(); //配置数据库,2选一 //$db->mysql($host, $user, $password, $dbname, '表前缀', 'GBK'); $db->sqlite('d:\Backup\test2.db'); //SQL语句查询 $db->query('SELECT * FROM 表')->fetch();//或者fetchall(); //执行一条无返回结果的SQL语句,如插入数据 $db->exec($sql); //返回最后插入的数据主键 echo $db->lastinsertid(); /***** 下面的操作如果条件为数组则不需要字符转义 *****/ //查询一条数据 $db->fetch('表', '字段1,字段2', '条件,可用数组,如:array(id => 1)', 'id DESC'); //查询所有数据 $db->fetchall('表', '字段1,字段2', '条件,可用数组', 'id DESC', '显示条数'); //插入一条数据 $db->insert('test', array('username' => 'lxx', 'password' => 'lxx')); //更新一条数据 $db->update('表', array('字段' => '值', '字段2' => '值'), array('id' => '1 更新ID为1的数据')); //删除一条数据 $db->delete('test', array('username' => 'lxx'));
- db.rar (2 KB)
- 下载次数: 20
发表评论
-
phpExcel输出xls文档显示乱码的解决办法
2012-01-14 10:56 5926最近在做一些报表的系统,主要是对excel的读取和处理操作。 ... -
关于php写入文本文件时回车的问题
2011-12-25 13:20 3262今天在写日志文件的时候,发现写入的内容不会换行。查了一些资料才 ... -
自己写的一个php memcache操作类
2011-11-29 17:07 1723这个类比较简单,只是把原有的php提供的memcache提供的 ... -
如何架设svn服务器和使用TortoiseSVN
2011-11-25 09:15 4197如果团队开发的话,版 ... -
php数组转换成xml
2011-11-24 14:16 1323转自:http://www.ligaofeng.com/ ... -
windwos下安装php的memcache扩展
2011-11-23 10:11 2162以前以了解memcache的时 ... -
【转】php 时间,日期计算
2011-11-15 14:22 1041转自:http://www.oschina.net/code/ ... -
php权限管理类
2011-11-05 13:23 1401这个是在网上找的,不做解释,先保存下,以后研究, -
【转】sphinx在windows下的安装与测试
2011-11-03 16:22 1736转自:http://www.cnblogs.com/ainia ... -
php中把数组写入到文件,再读取
2011-11-03 11:14 3733之前看到很多开源项目,一些项目的配置信息一般都写在文件里, 有 ... -
关于flv无法播放的问题
2011-09-26 10:47 1304最近在使用齐博的视频系统,布置到服务器上之后,发现上传的flv ... -
phpcms设置默认首页
2011-08-22 09:59 2668最近接触过phpcms的二次开发 用的是phpcms v9 ... -
ecshop后台模块开发
2011-07-27 10:31 1543这个暂时说下方法,至 ... -
关于cookie丢失的问题
2011-05-23 15:58 4089最近在改一个微博 前台登陆之后是很正常的,转到后台之后,就 ... -
Apache 下域名绑定到子目录
2011-05-21 10:13 10661有两种实现方法: 1,在httpd.conf文件结尾处加入如下 ... -
一个无限分类类
2011-05-16 09:49 1042这个是经过本人实践确实可以使用的。 先说下表结构。一共三个字段 ... -
php的一些小函数
2011-05-09 16:37 9251.舍弃小数,保留整数函数 intval(); 2. ... -
关于php 时间的处理
2011-04-22 17:44 839(1)打印明天此时的时间戳strtotime(”+1 day“ ... -
PHP SimpleXML
2011-03-26 19:02 1356最近要做一个核价的功能!就是展示一张表单,里面有很多选项根据用 ... -
webgrind 浅解
2011-03-24 14:00 2265以前用的是wamp 2,今天下载了wamp 2.1 安装成功 ...
相关推荐
### Ubuntu安装MySQL与SQLite3详解 #### 一、在Ubuntu中彻底卸载MySQL 在进行新的MySQL或SQLite3安装之前,确保系统上没有遗留的MySQL安装是非常重要的。下面是如何在Ubuntu系统中彻底卸载MySQL: 1. **删除MySQL...
总结,实现Android注册登录功能,需要结合PHP、MySQL和SQLite的技术,涉及前端UI设计、HTTP通信、数据库操作以及安全性等多个方面。这个项目可以帮助开发者深入理解移动应用与服务器端的协作,并提升对数据管理和...
Adminers是一款PHP/Mysql/SQLite可视化管理程序,功能类似于phpMyAdmin,不过要比phpMyAdmin更简洁,而且安装配置超简单,因为Adminers仅仅只有一个PHP文件,但它可支持11种界面语言,只要是PHP4.3 ,MySQL 4.1 以上...
将 mysql 数据库转换为 Sqlite 数据库。 包括两个项目:A) 一个 php 脚本 B) 一个基于 python 脚本的 Windows 可执行文件 转换数据、索引和外键约束。 关于 php 脚本:-不需要很多内存-良好的速度 预计在 VDS/VPS 上...
在PHP编程中,数据库操作是不可...总之,这个压缩包中的`Database`类库为PHP开发者提供了一个便利的工具,帮助他们高效地与MySQL、MSSQL、Oracle和SQLite数据库进行交互,简化了数据库操作的代码编写,提高了开发效率。
在iOS应用中,通常不直接与MySQL交互,而是通过后端服务(如PHP或Node.js)作为中间层,处理应用的数据库请求。这种模式下,应用发送HTTP请求,后端服务接收请求、执行相应的SQL操作,然后将结果返回给应用。 在...
同样,对于SQLite数据库,Adminer也提供了相似的功能,尽管在某些高级特性上可能略有不同,因为SQLite的特性和功能与MySQL有所区别。 使用Adminer,用户可以直接通过Web界面进行数据库操作,这对于开发者来说非常...
sqlite 数据库连接类就是利用了php 与sqlite进行连接操作;数据库连接,返回数据库连接标识符;是否保持持续连接,1为持续连接,0为非持续连接;从结果集中取得一行作为关联数组;显示mysql教程错误信息。
* 全面支持Sqlite和Mysql两种数据库引擎 * 支持超大图片上传 * 相册可以设置公开或个人,个人相册登录后才可以看到 * 自动生成各种尺寸图片 * 图片批量管理 * 简单防盗链功能 * 可查看图片EXIF信息 * 图片...
3. **使用适配器类**: `dbpdo.class.php`和`file.class.php`可能包含了处理SQLite数据库的自定义PDO类,这些类可以帮助WordPress正确地与SQLite交互。 4. **修改WordPress核心代码**: WordPress默认不支持SQLite,...
MariaDB是MySQL的一个分支,由MySQL创始人开发,旨在保持与MySQL的兼容性同时提供额外的功能和改进。MariaDB以更快的速度和更开放的社区支持为特点,支持Galera集群以实现高可用性。 7. MongoDB: MongoDB是一款...
【标题】"留言墙留言板php源码access,mysql,sqlite和不用连接数据库的text,txt"涉及的关键知识点包括PHP编程语言、数据库管理和多种数据存储方式。在这个项目中,开发者提供了几种不同的留言板实现方式,以便适应...
### 连接与操作 1. **SQLite连接**:在Python中,可以使用`sqlite3.connect('<database_name>.db')`建立连接,然后通过`cursor.execute(sql)`执行SQL。 2. **MySQL连接**:对于Python,`pymysql.connect(host='...
本篇文章中,将通过一个操作类的介绍来探索如何利用PHP的PDO扩展来实现对SQLite数据库的增删改查以及事务处理等操作。 首先,PDO是PHP的一个数据库访问抽象层,它支持一系列的数据库,包括SQLite、MySQL、Oracle等...
readerself, 自承载rss阅读器( php/mysql或者 SQLite ) 阅读器替代 需求语言PHP 5.3或者更高版本数据库MySQL 5.1或者更高版本SQLite Web服务器在支持 virtualhost/目录配置的virtualhost/目录配置中启用了Apache或者...
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比...
OptWare是一个轻量级的包管理系统,包含了许多应用程序,如MySQL、Transmission、Asterisk、OpenSSH、Apache、nginx、PHP和Vlc等。可以使用wget命令下载并安装OptWare包管理系统。 在安装OptWare包管理系统后,可以...
这就是使用PHP连接SQLite数据库的基本步骤和常用操作。SQLite数据库文件(如`test.db`)可以在服务器上任意位置,只要在连接时提供正确的路径即可。这种方式特别适合于小型应用或者开发环境,因为它简单易用且不需要...
实例中首先创建了一个名为cls_sqlite.php的SQLite操作类文件。然后,在主脚本中引入了这个类文件,并创建了一个SQLite对象实例$DB,传入了数据库文件名'blog.db'。 接着,通过$DB对象创建了一个名为test的数据库表...