本文目录一览:
- 1、如何在PHP5中通过PDO连接SQLite3数据库
- 2、PHP 操作 sqlite 时如何为 sqlite加密 和防止 用户下载数据库?
- 3、php 配置sqlite
- 4、php操作sqlite sql语句执行两次的问题
- 5、如何在php中查询sqlite 并进行展示
如何在PHP5中通过PDO连接SQLite3数据库
首先我们先选择要使用的web server 软件,由于从兼容性跟性能方面的需求,我选择了目前来说最新版的apache。
第二步,我们要使用目前最新版本的PHP zip package .这里提示大家一下,经过我痛苦的反复的实验跟查看资料,如果大家想要使用PDO扩展连接到SQLite数据库的话,请你一定不要选择安装包,因为它不支持很多PHP的扩展库文件。
第三步,我们要下载PDO的两个扩展库文件,文件名各自为:php_pdo.dll 跟 php_pdo_sqlite.dll 。下来以后保存在一边,我们稍候会使用到。
最后一步,大家需要到SQLite官方网站去下载SQLite的文件包。 选择适合自己的版本即可。
PHP 操作 sqlite 时如何为 sqlite加密 和防止 用户下载数据库?
Sqlite数据库的加密
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream fs = File.Create(“c:\\test.db“);
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile(“c:\\test.db“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnection.CreateFile(“c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2.db“);
cnn.Open();
cnn.ChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test.db“);
cnn.Open();
cnn.ChangePassword(“password“);
4、打开加密sqlite数据库
//方法一
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
cnn.SetPassword(“password“);
cnn.Open();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder.DataSource = @”c:\test.db“;
builder.Password = @”password“;
SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);
cnn .Open();
分页
select * from messages limit 10,100;
表示跳过10行,取100行的返回结果。
php 配置sqlite
PHP5已经绑定sqlite
1、手动添加的php的pdo的驱动扩展支持 ,在PHP.ini添加
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
extension_dir = "C:\Program Files\Apache Group\php5\ext"
2、在C:\Program Files\Apache Group\php5\ext保证有php_sqlite.dll,php_pdo_sqlite.dll,
php_pdo.dll扩展库
3、重启apache
4、下载SQLitemanager,create a database,保存名“db.sqlite”的数据库,建表,
或者sqliteadmin
5、在PHP链接SQLite
方法一、$db= new PDO('sqlite:db.sqlite') ;
print_r($db);
$sth = $db-query("select * from aqo");
方法二、if ($db = sqlite_open('db.db', 0666, $sqliteerror)) {
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query($db, 'select bar from foo');
var_dump(sqlite_fetch_array($result));
} else {
die($sqliteerror);
}
php操作sqlite sql语句执行两次的问题
我觉得,你这个方法对插入并不适用啊。插入返回的没有结果集,只有成功与失败。那你执行之后,还去fetchArray() 。这个就不好了吧。插入的时候,不需要去取这个啊。你应该要判断一下传进来的SQL。如果是 SELECT 开头的,则执行这句。如果是非SELECT ,比如 INSERT UPDATE DELETE 那么就不需要去执行那句。而是直接返回 $result 就行了。你的执行两句,有可能就是这个不需要执行的地方引起的。你自己加个判断,处理一下。看看是否还会插入两条记录。
如何在php中查询sqlite 并进行展示
// set access parameters
$db = "users.db";
// open database file
// make sure script has read/write permissions!
$conn = sqlite_open($db) or die ("ERROR: Cannot open database");
// create and execute INSERT query
$sql = "INSERT INTO users (id, username, country) VALUES ('5', 'pierre', 'FR')";
sqlite_query($conn, $sql) or die("Error in query execution: " . sqlite_error_string(sqlite_last_error($conn)));
// create and execute SELECT query
$sql = "SELECT username, country FROM users";
$result = sqlite_query($conn, $sql) or die("Error in query execution: " .sqlite_error_string(sqlite_last_error($conn)));
// check for returned rows
// print if available
if (sqlite_num_rows($result) 0) {
while($row = sqlite_fetch_array($result)) {
echo $row[0] . " (" . $row[1] . ") ";
}
}
// close database file
sqlite_close($conn);