在数据库中插入一个数组

时间:2014-10-11 08:10:48

标签: php mysql arrays database

我想在数据库中插入一个数组。阵列可以一直更改。我想在数据库中使用不同的行。

我的代码:

$var = file_get_contents("test2.txt");
   $test = preg_replace('/\\\\/', '', $var);
   $poep = explode(" ", $test);

是的,没有数据库连接,因为我想知道如何“拆分”数组以将其插入数据库中。

我试过这个:

foreach($poep as $row) {
    $row   = $mysqli->real_escape_string($row);
    if($mysqli->query("insert into data('array') VALUES ($row)") == false){
        echo 'Doesnt works!';
    }

它返回'不工作',所以我认为查询有问题吗?

2 个答案:

答案 0 :(得分:0)

@NadirDev嗨。假设您正在使用Core PHP编程。在按空格爆炸字符串后,运行foreach循环然后插入单个行。看看这个粗略的代码来获得想法:

foreach($poep as $row) {
    // $row now contains one word. Add that in database.
    $row   = mysql_real_escape_string($row);
    $query = mysql_query("insert into tableName('fieldName') VALUES ($row)");
}

答案 1 :(得分:0)

这是我写的一些代码。它处理CSV文件并将单独的行存储到db表中(区别在于您有一个TXT文件)。它以250行的批量进行mysql插入。希望它可以帮到你!

// read all input rows into an array
echo "Processing input..<br /><br />";
$row = 0;
$input = array();
if (($handle = fopen($file['tmp_name'], "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
        $num = count($data);
        for ($c=0; $c < $num; $c++) {
            $input[$row][] = addslashes($data[$c]);
        }

        $row++;
    }
    fclose($handle);
}

$count = 0;
$q = "INSERT INTO `inputs` (`keyword`, `percent`, `link`, `added_on`) VALUES ";

foreach ($input as $inp) {
    $q .= "('" . addslashes($inp[0]) . "', '" . addslashes($inp[1]) . "', '" . addslashes($inp[2]) . "', '" . date('Y-m-d H:i:s') . "'), ";
    $count++;

    if ($count >= 250) {
        $q = substr($q, 0, -2);
        $q = mysqli_query($con, $q);

        $q = "INSERT INTO `inputs` (`keyword`, `percent`, `link`, `added_on`) VALUES ";
        $count = 0;
    }
}

if ($count > 0) {
    $q = substr($q, 0, -2);
    $q = mysqli_query($con, $q);
}

echo "Successfully added " . count($input) . " rows to the input list.";