在php中的数据库中插入数组的内容

时间:2018-04-08 07:55:55

标签: php sql database

我写了这个函数,它将网页中的一些内容从我的数据库中删除。我的问题是使用我的数组变量$lang,当我使用print_r($lang)进行测试时,一切都按照我想要的方式工作,但是我无法在我的数据库中插入值,因为当我使用它时,它看起来像数组是空的它在第二个foreach

请大家,如何正确地在我的数据库中插入$lang?以下是我的代码。非常感谢您的帮助。谢谢!

<?php

$html = file_get_html($url);
$links = array();
$lang = array();
foreach ($html->find('div.blockshadow h1') as $i => $title) {
    $textValue = $title->plaintext;
    if (strpos($textValue, 'VF') !== false) {
        $lang[] = 'VF';
    } elseif (strpos($textValue, 'VOSTFR') !== false) {
        $lang[] = 'VOSTFR';
    } elseif (strpos($textValue, 'VO') !== false) {
        $lang[] = 'VO';
    }
}

foreach ($html->find('div.blockshadow iframe') as $key => $a) {
    $linkUrl = $a->src;
    $wpdb->insert(
            $table_name, array(
        'Idioma' => $lang,
        'Calidad' => ucwords("HDRIP"),
        'Enlace' => $linkUrl,
        'PID' => $return['ID'],
        'Tipo' => '3',
            )
    );
}

2 个答案:

答案 0 :(得分:1)

如果您不打算将数据拆分为多个表格,并希望将其全部保存在一个列中,则可以使用json_encode / serialize

你选择哪一个都取决于你,但保持一致。

当您读出数据时,只需使用json_decode / unserialize即可获得初始数组。

类似的东西:

   $data = json_encode([
       'Idioma' => $lang,
       'Calidad' => ucwords("HDRIP"),
       'Enlace' => $linkUrl,
       'PID' => $return['ID'],
       'Tipo' => '3',
   ]);

   $wpdb->insert($table_name, $data);

为了阅读,您首先要像平常一样从表中选择数据,但在使用之前,您必须json_decode / unserialize生成此数据的列。

答案 1 :(得分:0)

使用implode函数将数组转换为字符串,并检查值是否为空,如下所示。

$newLang = "";

if(!empty($lang))
{
   $newLang = implode(',',$lang);
}

并且对数据库使用$newLang变量,也要在foreach循环中插入数组中存在的所有值,然后使用上面的方法,如果你想要每个循环的特定值,那么使用$newLang[$key]

希望这有帮助。

PS:你不能直接将数组插入表格。