PHP使用PDO操作sqlite資料庫應用案例

2022-09-26 06:21:12 字數 2560 閱讀 3424

1、需求:

已知:1)、乙個json檔案,裡面是乙個二維陣列,陣列解析出來為:

array (

0 =>

array (

'title' => '九十九',

),1 =>

array (

'title' => '電腦九十九',

),2 =>

array (

'title' => '手機九十九',

),3 =>

array (

'title' => '手機電腦九十九',

),);

2)、乙個sqlite資料庫檔案 20180824.db 新建乙個sqlite資料庫檔案

新建表 report

表字段 id words time

求:把從json中查到的資料,在sqlite中檢索,判斷是否存在;

如果存在就給sqlite加上乙個 word_sort欄位,把title在檔案中是第幾個(一次遞增,不是json檔案陣列的鍵值)寫入到word_sort欄位

思路:① 獲取jsonlist.json檔案內容並json_decode($str,true)轉為二維陣列

② 連線sqlite表

③try{}catch(){}給表增加 word_sort欄位

④ 把json檔案中的資料陣列化

⑤ 每次迴圈5000條json資料,用 in 在report表中查詢(title欄位需要拼接)

⑥ 把查詢出來的資料用 sql的批量跟新語句拼接

⑦try{}catch(){}批量更新report表資料

⑧ echo輸出執行結果

2、php**(yaf框架):

<?php /**

* @todo 組詞

* class communitycontroller

*/class combinw程式設計客棧ordcontroller extends rest");

//設定資料庫控制代碼 屬性 pdo::attr_errmode:錯誤報告。 pdo::errmode_exception: 丟擲 exceptions 異常。

$db->setattribute(pdo::attr_errmode, pdo::errmode_exception);

//加combinword欄位 start

$add_filed = 'word_sort';

$add_filed_sql = "alter table report add text(32)";

try catch(pdoexception $e)

//加combinword欄位 end

$addstep = 5000; //每次操作的資料

$word_cnt = 0;

$succ_cnt = 0;

$sort = 0;

$total = count($data);

for ( $x=0; $xgetstrbyarr($temp_json);

$temp_sql = "select * from report where words in ()";

$res = $db->query($temp_sql);

$result = $res->fetchall(pdo::fetch_assoc); //獲取陣列結果集

$words_result = array_column($result, 'words'); //結果去重

$unique_result = array_unique($words_result);

//var_export($unique_result);die;

//批量更新 start

$update_sql = "update report set = case words ";

foreach ($unique_result as $k => $v)' then ".$sort++;

}$sort += count($unique_result); //加上排序字段

$update_sql_str = $this->getstrbyarr( $unique_result );

$update_sql .= " end where words in ()";

//var_export($update_sql);die;

try ]個關鍵字,共影響了條資料 ".php_eol;

}catch(pdoexception $e)

//批量更新end

}echo "一共更新了個關鍵字,共影響了條資料 ".php_eol;

die;

} /**

* @todo 根據陣列返回拼接的字串

* @param unknown $temp_json 陣列

* @return string 字串

*/function getstrbyarr($temp_json)else

$temp_str .= "'".$v."'";

}return $temp_str;

} /**

* @todo 獲取json資料

*/public function getjson()

}

如何在PHP5中通過PDO連線SQLite3資料庫

如何在php5中通過pdo連線sqlite3資料庫 通過php 跟pdo 配置sqlite 資料庫是一件很繁瑣的事情,經過一下午的研究,終於理清了裡面的思路。現在拿出來跟大家共享。初學,錯誤請指出。首先我們先選擇要使用的 web server 軟體,由於從相容性跟效能方面的需求,我選擇了目前來說最新...

使用PHP的PDO類操作MySQL

mysql new pdo mysql host localhost sort 3306 dbname foo user,psd 值得一提的是,如果連線資料庫失敗,會丟擲乙個pdoexception異常,這樣我們就可以直接用try catch 來處理異常,不僅如此,還可以通過pdo setattri...

PHP的PDO基本操作

php 5 及以上版本建議使用以下方式連線 mysql mysqli extension i 意為 improved pdo php data objects pdo 應用在 12 種不同資料庫中,mysqli 只針對 mysql 資料庫。二者都支援預處理語句,可防止sql注入。示例 servern...