mysql - Laravel mysql 插入+删除或更新如何?

标签 mysql laravel laravel-5 eloquent laravel-5.4

我正在删除一个新闻网站并将其保存在数据库中,但是这个“工作”或功能将每小时运行一次,因此为了减少记录数量,我将其减少到 20 条记录,现在我当然不这样做了不想保留旧消息,因此我想插入新查询并删除以前的查询或更新现有查询。记录数始终为 20,但如何实现呢?当然,如果我插入+删除,id 号码每次都会改变。但是,如果我进行更新,我将如何告诉它更新前 1-20 个 ID。

这是它在数据库中的样子:

enter image description here

到目前为止的代码如下:

function oldham_chronicle(){
    $client = new Client();
    $crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features');
    $crawler->filter('div[id=content]>.teaser-50')->each(function ($node) {
        $test = $node->filter('.plain')->text();
        $test2 = $node->filter('.dateonline')->text();
        $news = new News();
        $news->title = $test;
        $news->datepublished = $test2;
        $news->save();
    });
return view('chronicle');

最佳答案

我建议你更新,你可以试试这个

function oldham_chronicle(){
    $client = new Client();
    $crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features');
    $crawler->filter('div[id=content]>.teaser-50')->each(function ($node, $key) {
        $test = $node->filter('.plain')->text();
        $test2 = $node->filter('.dateonline')->text();
        $id = $key + 1;
        $news = News::where('id', $id)->first();

        // if news is null
        if (!$news) {
            $news = new News();
        }

        $news->title = $test;
        $news->datepublished = $test2;
        $news->save();
    });
return view('chronicle');

我没有测试我的代码,因为我没有数据。

关于mysql - Laravel mysql 插入+删除或更新如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44516087/

相关文章:

php - 如何按月份对数组中的值进行分组?

mysql - 使用计数值作为偏移量的 SQL

Mysql:合并相同的值

Laravel 测试 API 端点 - 缺少 POST 参数

php - Laravel 5.4 搜索邮政区通配符

php - Laravel Blade : passing a variable to a child view

php - 无法通过 Composer 安装 laravel 安装程序

mysql - 从不同的表中按标签选择

php - XAMPP,PHP : echo adds two spaces to blob read from database

php - Laravel 5.2 PDO 终端​​异常