为什么这个数组不会插入到我的MYSQL表中?

时间:2012-09-26 20:17:52

标签: php

  

可能重复:
  How show Multidimensional Arrays be inserted into a MySQL table?

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

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 . ")" );

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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';
 }

答案 2 :(得分: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。