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写项目作准备
相关文章
相关标签/搜索