我想在mysql表中插入一个数组。该数组是通过脚本扫描所有链接,转换为绝对链接,然后在数组中显示它们而生成的。我决定将数组mysql_query到表中,但现在我被卡住了。它只发送“array”,而不是将数组中的每一行都发送到不同的行。有什么想法吗??!
<?php
require_once('simplehtmldom_1_5/simple_html_dom.php');
require_once('url_to_absolute/url_to_absolute.php');
$connect = mysql_connect("xxxx", "xxxx", "xxx") or die('Couldn\'t connect to MySQL Server: ' . mysql_error());
mysql_select_db("xxxx", $connect ) or die('Couldn\'t Select the database: ' . mysql_error( $connect ));
$links = Array();
$URL = 'http://www.theqlick.com'; // change it for urls to grab
// grabs the urls from URL
$file = file_get_html($URL);
foreach ($file->find('a') as $theelement) {
$links[] = url_to_absolute($URL, $theelement->href);
}
print_r($links);
mysql_query("INSERT INTO pages (url) VALUES ('$links[]')");
mysql_close($connect);发布于 2012-09-14 05:20:43
您可能希望使用数据中不出现的分隔符进行implode() (不可打印的字符通常是一个很好的选择,但有时可以使用各种符号)。或者,你可以让PHP serialize()它为你,甚至保存为json_encoded格式。
如果您实际上正在尝试插入多个行,每个行都有一个$links条目,则应执行以下操作:
mysql_query("INSERT INTO pages (url) VALUES ('".implode("'),('",$links)."')");只需确保所有链接都已正确杀毒即可!
发布于 2012-09-14 05:19:34
您可以用JSON格式表示数组并将其插入到数据库中。但实际上,一个好的数据库设计应该使插入数组变得不必要。对于数组中的每个键,最好有一个单独的列,并且只存储值,而不是实际的数组结构。
发布于 2012-09-14 05:17:56
是否将数组转换为字符串?我认为这是最好的选择。
$ids = join(',',$links);
$sql = "INSERT INTO pages (url) VALUES ('$ids')";https://stackoverflow.com/questions/12414914
复制相似问题