本文目錄一覽:
- 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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187815.html