0

可能重复:
如何将多维数组插入 MySQL 表?

我有一个数组。该数组是多维的,并且在内爆方面工作得很好。然后,当我尝试将数组插入数据库时​​,每行的每个多维数组。它不会进入。只有最后一行插入自己,但是在尝试了这个不插入任何东西的新代码之后,我被卡住了。顺便说一句,我丢失了以前的代码:

foreach ($links as $link) {
    $output = array(
        "title"       => Titles($link), 
        "link"        => $link,
        "description" => getMetas($link),
        "keywords" => getKeywords($link) 
    );
    if (empty($output["description"])) {
        $output["description"] = getWord($link);
    }
    $data[] = '"' . implode('" , "', $output) . '"';
}
mysql_query( "INSERT INTO search (title, description , keywords, link)
    VALUES (" . $data . ")" );
4

3 回答 3

2

因为您将结果分配implode$data[],即 的下一个可用数组元素$data。在这种情况下,您希望将 的结果分配implode给 just $data

如果您打印生成的 SQL,您可能只会得到INSERT INTO ...... VALUES(Array).

于 2012-09-26T20:19:36.870 回答
0

查询mysql_query( "INSERT INTO search (title, description , keywords, link) VALUES (" . $data . ")" );需要在foreach循环内。

     foreach ($links as $link) {
$output = array(
    "title"       => Titles($link), //dont know what Titles is, variable or string?
    "link"        => $link,
    "description" => getMetas($link),
    "keywords" => getKeywords($link) 
);
if (empty($output["description"])) {
    $output["description"] = getWord($link);
}
$data = '"' . implode('" , "', $output) . '"';
$success = mysql_query( "INSERT INTO search (title, description , keywords, link)
VALUES (" . $data . ")" );
if( $success)
  echo $link . ' row inserted';
 }
于 2012-09-26T20:23:09.573 回答
0

您的 INPUT 语法仅填充一行。要在一个 MYSQL 查询中添加所有行,您将更改代码如下:

$data = "";
foreach ($links as $link) {
    $output = array(
        "title"       => Titles($link), 
        "link"        => $link,
        "description" => getMetas($link),
        "keywords" => getKeywords($link) 
    );
    if (empty($output["description"])) {
        $output["description"] = getWord($link);
    }
    $data .= '("' . implode('", "', $output) . '"), '; // add each row in parenthesis.
}
mysql_query( "INSERT INTO search (title, description , keywords, link)
    VALUES " . $data );

此外,您的 mysql 代码已全部弃用,您应该尽快转换为 mysqli。

于 2012-09-26T20:31:25.537 回答