<?php
/**
* Created by PhpStorm.
* User: func7
* Date: 2018/11/8
* Time: 11:24
*/
set_time_limit(0);
header("Content-type: text/html; charset=utf-8"); $dbhost = "127.0.0.1";
$username = "test";
$userpass = "testadmin";
$dbdatabase = "test"; $db_con = mysqli_connect($dbhost, $username, $userpass) or die("Unable to connect to the MySQL!");
//选择一个需要操作的数据库
$db_con->query("SET NAMES utf8");
mysqli_select_db($db_con, $dbdatabase);
/***********连接数据库****end******/
//应用查询及处理数据
$sqlData = mysqli_query($db_con, "SELECT
a.id AS _id,
a.id,
a.NAME,
a.STATUS,
a.state,
a.package,
atype_id,
IF
( b.rank = 3, 3, 1 ) AS rank,
IF
( channel_type & 2 = 2, 0, 1 ) AS `show`
FROM
apps AS a
LEFT JOIN apps_rank AS b ON a.id = b.app_id
WHERE
a.id >1
AND a.id <=12000
");
//提取数据
$Esdata = array();$cl = curl_init();
curl_setopt($cl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($cl, CURLOPT_PORT, 9200);
curl_setopt($cl, CURLOPT_TIMEOUT, 2000);
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cl, CURLOPT_FORBID_REUSE, 0);
curl_setopt($cl, CURLOPT_CUSTOMREQUEST, 'PUT'); //GET 获取 // DELETE 删除 //PUT 插入
if ($sqlData) {
while ($dataRow = mysqli_fetch_assoc($sqlData)) {
$Esdata['id'] = intval($dataRow['id']);
$Esdata['name'] = $dataRow['NAME'];
$Esdata['package'] = $dataRow['package'];
$Esdata['state'] = intval($dataRow['state']);
$Esdata['status'] = intval($dataRow['STATUS']);
$Esdata['atype_id'] = intval($dataRow['atype_id']);
$Esdata['rank'] = intval($dataRow['rank']);
$Esdata['show'] = intval($dataRow['show']);
$jsonStr = json_encode($Esdata, JSON_UNESCAPED_UNICODE);
//修改二,设置es导入
$baseUri = 'http://localhost:9200/test/test_type/' . $Esdata['id'];
curl_setopt($cl, CURLOPT_URL, $baseUri);
curl_setopt($cl, CURLOPT_POSTFIELDS, $jsonStr);
$response = curl_exec($cl);
}
}
unset($Esdatas);//销毁数组
file_put_contents('log.log',$response);
curl_close($cl); usleep(50000);//自定义延迟
Elasticsearch的增删改查操作 在使用curl的时候可以修改
curl_setopt($cl, CURLOPT_CUSTOMREQUEST, 'PUT'); //GET 获取 // DELETE 删除 //PUT 插入

Elasticsearch 使用 php curl 插入数据的更多相关文章

  1. Elasticsearch PUT 插入数据

    { "error": { "root_cause": [ { "type": "illegal_argument_exceptio ...

  2. elasticsearch REST API方式批量插入数据

    elasticsearch REST API方式批量插入数据 1:ES的服务地址  http://127.0.0.1:9600/_bulk 2:请求的数据体,注意数据的最后一行记得加换行 { &quo ...

  3. python批量插入数据到es和读取es数据

    一.插入数据 1.首先准备类似如下数据 {"_type": "type1", "_id": 1, "_index": & ...

  4. elasticsearch 5.x 系列之五 数据导入导出

    一.首先给大家发一个福利,分享一个elasticsearch 数据导出工具. esm github 源码地址: https://github.com/medcl/esm 下载编译好的对应elastic ...

  5. 在ES批量插入数据超时时自动重试

    当我们使用ES批量插入数据的时候,一般会这样写代码: from elasticsearch import Elasticsearch,helpers es =Elasticsearch(hosts=[ ...

  6. 数据库插入数据返回当前主键ID值方法

    当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...

  7. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  8. mysql 插入数据失败防止自增长主键增长的方法

    mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的? 或者说 ...

  9. jdbc java数据库连接 7)获取插入数据的自增长值

    我们创建一个sql表,里面的数据往往都会有自增长值. 那么,我们用jdbc插入数据的时候,要想同时获得这个增长值. 代码: /** * * 这是插入一条数据的同时,获取该数据的则增长列的值(该例子的自 ...

随机推荐

  1. 图说真实上海IT圈:张江男VS漕河泾男

    图说上海真实IT圈:张江男VS漕河泾男 架构师修炼宝典 Java   通过比较上海各住宅小区在工作日晚餐与夜宵时段一人食外卖订单指数我们会发现: 上海IT圈两大胜地: 张江高科和漕河泾双双上榜 其中张 ...

  2. 使用AVFoundation完成照片拍摄存储相册, 开启关闭闪光灯, 切换摄像头

    在开启这个旅程之前, 请记住, AVFoundation是一个复杂的工具. 在很多情况下, 我我们使用苹果默认的API(比如:UIImagePickerController)就足够了. 在您阅读之前, ...

  3. DevOps 工程师成长日记系列一:必备知识与技能组合

    原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737 ...

  4. 并发修改异常ConcurrentModificationException

    1.简述:在使用 迭代器对象遍历集合时,使用集合对象修改集合中的元素导致出现异常 public static void main(String[] args) { List<Integer> ...

  5. SSDB数据库笔记

    目录 环境 配置文件 启动服务器 客户端 SSDB:一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 参考文献: SSDB官网 环境 win10 下 wsl 环境 ubun ...

  6. 修改postgresql 密码

    sudo -u postgres psql -c "alter user postgres password '123456';"

  7. Shell命令-用户用户组管理之useradd、usermod

    文件及内容处理 - useradd.usermod 1. useradd:添加用户 useradd命令的功能说明 useradd 命令用于建立用户帐号.useradd 可用来建立用户帐号.帐号建好之后 ...

  8. 安装npm install app-inspector -g 提示错误

    问题1: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^ (node_modules\app-inspector\node_mod ...

  9. C++中的传值与传址

    在指针的传递中,也涉及到传值与传址的问题.下面通过一个函数进行说明. 代码如下: bool openBinary(uchar* buffer) { ; buffer = (uchar*)malloc( ...

  10. 源码编译Kubeadm二进制文件

    kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k ...