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

我有一个对象如下,


$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 | 4

2 | score | 55

我可能会使用 PHP 来获取所有以 meta_ 开头的字段并将它们放在单独的 (object)[] 中,然后想用 MYSQL 循环遍历该对象。


扬帆大鱼
浏览 195回答 1
1回答

红糖糍粑

你可以试试这个:$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")"现在您可以一次全部插入
打开App,查看更多内容
随时随地看视频慕课网APP