PHP爬蟲 -- 013 PHP+Medoo

數據庫框架了解一下?

  • 輕量級的PHP數據庫框架, 提升開發效率!

Medoo的基本用法

  • 中文網: medoo.lvtao.net/
  • 安裝: composer require catfan/Medoo
  • 須要開啓pdo

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
// 插入數據示例
$database->insert('users', [
    'name' => 'foo',
    'address' => 'foo@bar.com',
    'age' => 25
]);
複製代碼

使用medoo插入數據

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
// 插入數據示例
$database->insert('users', [
    'name' => 'foo',
    'address' => 'foo@bar.com',
    'age' => 25
]);


echo $database->id();
複製代碼

使用medoo批量插入數據

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
// 插入數據示例
$database->insert('users', [[
    'name' => 'foo',
    'address' => 'foo@bar.com',
    'age' => 25
],[
    'name' => 'foo1',
    'address' => 'foo1@bar.com',
    'age' => 22
]]);
複製代碼

使用medoo刪除數據

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
$data = $database->delete('users', [
    "name"=>'foo'
]);


echo $data->rowCount();
複製代碼

使用medoo查詢數據

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
$data = $database->select('users', '*');


var_dump($data);
複製代碼

使用medoo修改數據

<?php

// 若是你使用php的依賴安裝。能夠使用如下方法自動載入
require 'vendor/autoload.php';
 
use Medoo\Medoo;
 
// 初始化配置
$database = new Medoo([
    'database_type' => 'mysql',
    'database_name' => 'demo_db',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
]);
 
$data = $database->update('users', [
    'name'=>'foo'
],[
    'name'=>'foo1'
]);


echo $data->rowCount();
複製代碼

使用medoo改寫原來的代碼

<?php
libxml_use_internal_errors(true);
require 'vendor/autoload.php';

use Medoo\Medoo;
use QL\QueryList;

function get_content($url) {
    return QueryList::get($url)->find('article.post.type-post.status-publish.format-standard.hentry.category-uncategorized')->text();
}

function get_tilte_date($url) {
    return QueryList::get($url)->rules([ //設置採集規則
        'date' => ['header > div > a > time.entry-date.published', 'text'],
        'title' => ['header > h2 > a', 'text'],
        'url' => ['header > h2 > a', 'href'],
    ])->queryData();
}

function start($url) {
    $data = get_tilte_date($url);
    foreach ($data as $key => $value) {
        $data[$key]['content'] = get_content($value['url']);
    }
    save_data($data);
}

function insert_blog($title, $date, $content) {
    // 初始化配置
    $database = new Medoo([
        'database_type' => 'mysql',
        'database_name' => 'demo_db',
        'server' => 'localhost',
        'username' => 'root',
        'password' => 'root',
        'charset' => 'utf8',
    ]);

    $data = $database->insert('blogs', [
        'date'=>$date,
        'title'=>$title,
        'content'=>$content
    ]);
}

function save_data($content_array) {
    foreach ($content_array as $key => $value) {
        insert_blog($value['title'], $value['date'], $value['content']);
    }
}
start("https://wordpress-edu-3autumn.localprod.forc.work/");
複製代碼

做業

  • 使用medoo改寫原來電子書城的代碼
  • 爲後期使用medoo寫項目作準備
相關文章
相關標籤/搜索