首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将'Array‘插入mysql表

问将'Array‘插入mysql表
EN

Stack Overflow用户
提问于 2012-09-14 05:16:23
回答 7查看 808关注 0票数 0

我想在mysql表中插入一个数组。该数组是通过脚本扫描所有链接,转换为绝对链接,然后在数组中显示它们而生成的。我决定将数组mysql_query到表中,但现在我被卡住了。它只发送“array”,而不是将数组中的每一行都发送到不同的行。有什么想法吗??!

代码语言:javascript
复制
   <?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);
EN

回答 7

Stack Overflow用户

发布于 2012-09-14 05:20:43

您可能希望使用数据中不出现的分隔符进行implode() (不可打印的字符通常是一个很好的选择,但有时可以使用各种符号)。或者,你可以让PHP serialize()它为你,甚至保存为json_encoded格式。

如果您实际上正在尝试插入多个行,每个行都有一个$links条目,则应执行以下操作:

代码语言:javascript
复制
mysql_query("INSERT INTO pages (url) VALUES ('".implode("'),('",$links)."')");

只需确保所有链接都已正确杀毒即可!

票数 3
EN

Stack Overflow用户

发布于 2012-09-14 05:19:34

您可以用JSON格式表示数组并将其插入到数据库中。但实际上,一个好的数据库设计应该使插入数组变得不必要。对于数组中的每个键,最好有一个单独的列,并且只存储值,而不是实际的数组结构。

票数 2
EN

Stack Overflow用户

发布于 2012-09-14 05:17:56

是否将数组转换为字符串?我认为这是最好的选择。

代码语言:javascript
复制
$ids = join(',',$links);  
$sql = "INSERT INTO pages (url) VALUES ('$ids')";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12414914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档