为了账号安全,请及时绑定邮箱和手机立即绑定

MYSQL - 如何循环通过对象并将元字段发布到数据库

MYSQL - 如何循环通过对象并将元字段发布到数据库

PHP
扬帆大鱼 2022-05-27 16:16:08
我有一个对象如下,$object = (object) ['meta_age' => '17', 'meta_name' => 'jack', 'meta_lastname' => 'ripper', 'recording' => 'binarystring'];由我的 $_POST 制作。使用 MYSQL,我如何获取所有以 meta 开头的字段并将其发布到数据库?请记住,元数据每次都会改变,所以我需要某种循环。用户可以控制元是什么。所以它也可能是$object = (object) ['meta_rank' => '4', 'meta_score' => '55', 'recording' => 'binarystring'];我想在元表中发布这个。有以下列id | type | content 所以对于最后一个它会是1 | rank | 42 | score | 55我可能会使用 PHP 来获取所有以 meta_ 开头的字段并将它们放在单独的 (object)[] 中,然后想用 MYSQL 循环遍历该对象。
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

你可以试试这个:


$object = (object) ['meta_age' => '17', 'meta_name' => 'jack', 'meta_lastname' => 'ripper', 'recording' => 'binarystring'];


$prepareInsert = [];

foreach ($object as $key => $value) {

    if (strpos($key, 'meta') > -1) {

        $splitKey = explode('_', $key);

        $metaKey = $splitKey[1];


        $prepareInsert[$metaKey] = $value;

    }

}

输出是:


array(3) {

  ["age"]=>

  string(2) "17"

  ["name"]=>

  string(4) "jack"

  ["lastname"]=>

  string(6) "ripper"

}

现在只需遍历您的数组并进行插入!


$sqlQuery = 'INSERT INTO table_name (type, content) VALUES ';

foreach ($prepareInsert as $metaKey => $value) {

    $sqlQuery .= '("'.$metaKey.'","'.$value.'"),';

}

$sqlQuery = substr($sqlQuery, 0, -1); // Just to remove the last ','

输出是:


"INSERT INTO table_name (type, content) VALUES ("age","17"),("name","jack"),("lastname","ripper")"


现在您可以一次全部插入


查看完整回答
反对 回复 2022-05-27
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号