【发布时间】:2020-10-19 18:39:54
【问题描述】:
希望您能指导我以下内容:
我正在向 wordpress REST Api 发送一个 json 格式的 http post 请求,如下所示:
{"item1":26.62,"item2":319,"item3":4445,"payload":"0a66013f115d0001088f013c05", "timestamp": "2020-06-26 19:34:31", "device": "xx"}
现在在 php 中,我有以下内容将其存储在 wordpress 连接的 mysql 数据库中,在自定义表中,如下所示:
function handle_post( WP_REST_Request $request ) {
global $wpdb;
$item = $request->get_json_params();$fields = array();
$values = array();
foreach($item as $key => $val) {
array_push($fields, preg_replace("/[^A-Za-z0-9]/", '', $key));
array_push($values, $wpdb->prepare('%f', $val));
}
$fields = implode(", ", $fields);
$values = implode(", ", $values);
$query = "INSERT INTO `tablename_xxx` ($fields) VALUES ($values)";
$list = $wpdb->get_results($query);
return $list;}
add_action( 'rest_api_init', function () { register_rest_route( 'data/v1', '/005', array( 'methods' => 'POST', 'callback' => 'handle_post', ) );} );
我找到了这段代码,它可以工作,但这只是转换数字/浮点数。我应该如何继续包含包含字符串(数字和字母)的两个键值对。以及如何存储时间戳?此外,始终包含这些字符串和时间戳,具有值的“项目”的数量可能不同。
接下来,是否可以使用其中一对,即它的值,将其存储在(自定义)表中,并在表标题中匹配值?我可以以某种方式使用变量吗?
感谢您的帮助!
【问题讨论】:
标签: php mysql json wordpress rest