注册 登录
阳新论坛 返回首页

zMouse的个人空间 https://bbs.435200.com/?1984 [收藏] [复制] [RSS]

日志

SQLITE

已有 1287 次阅读2009-11-26 12:16 |个人分类:SQLITE|

SQLITE支持的数据类型:
smallint          16 位元的整数。
interger          32 位元的整数。
decimal(p,s)   p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
float               32位元的实数。
double            64位元的实数。
char(n)           n 长度的字串,n不能超过 254。
varchar(n)       长度不固定且其最大长度为 n 的字串,n不能超过 4000。
graphic(n)       和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支持两个字元长度的字体,例如中文字。
vargraphic(n)  可变长度且其最大长度为 n 的双字元字串,n不能超过 2000。
date               包含了 年份、月份、日期。
time               包含了 小时、分钟、秒。
timestamp             包含了 年、月、日、时、分、秒、千分之一秒。

PHP连接SQLITE:
$db_name='sqlite.db';
$db=new SQLiteDatabase($db_name, 0644, $error);
if ($error) exit($error);

创建一个表, 三个字段
user,主键,非空,长度100的varchar
pass,非空,长度100的varchar
date,非空,整型,索引
这里使用了queryExec 而不是 query.因为只是执行,不需要返回结果
注意:在SQLite里面query也是可以执行多行语句,但是如果有结果返回的,则只会有执行第一个有结果返回的命令。
执行失败将会返回FALSE.
$db->queryexec("
CREATE TABLE user (
user VARCHAR ( 100 ) NOT NULL PRIMARY KEY,
pass VARCHAR ( 100 ) NOT NULL,
date INTEGER NOT NULL,
);CREATE INDEX user_date ON user(date);
");
插入一条数据
$db->query("INSERT INTO user (user, pass, date) VALUES ('admin', 'password', 123456789)");
$db->query("INSERT INTO user (user, pass, date) VALUES ('super', 'password2', 123456790)");

对某条记录进行更新
$db->query("UPDATE user SET password='password1' WHERE user='admin'");

查询
PHP下面SQLite的查询有很多形式
sqlite_array_query 进行一个查询,直接将返回的结果放入array
sqlite_query 是个普通的执行命令,返回为handle

返回来的handle 可以通过以下来获取结果
sqlite_fetch_all 获取所有结果并且将每条结果作为array,然后放入一个大的array里面
sqlite_fetch_array 获取下一个结果作为array
sqlite_fetch_column_types — Return an array of column types from a particular table
sqlite_fetch_object 获取下一个结果返回一个对象(obj)
sqlite_fetch_single 只获取第一列结果,返回为字符变量
sqlite_fetch_string 等同于 sqlite_fetch_single

因此会很方便写数据库的查询
例子:
$r=$db->singleQuery("SELECT password FROM user WHERE user='admin'");
// $r 则为返回来的 password1 字符串
$q=$db->Query("SELECT * FROM user");
while ($r=$q->fetch()) {
echo "User: $r[user] Password: $r[pass] Date: $r[date]n";
}
$r=$db->fetchAll("SELECT user, password FROM user");
print_r($r);


鸡蛋

鲜花

握手

雷人

路过

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|Archiver|手机版|小黑屋|删帖指引|阳新新阳网 ( 鄂ICP备19013424号-2 )

GMT+8, 2024-4-24 13:11 , Processed in 0.185271 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.