0

重複の可能性:
show多次元配列を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ます$data

生成されたSQLを出力すると、おそらくINSERT INTO ...... VALUES(Array)

于 2012-09-26T20:19:36.870 に答える
0

INPUT構文は1行のみを入力します。1つの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 に答える
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 に答える