在MySQL数据库中插入一个数组

时间:2011-07-07 06:22:55

标签: php mysql arrays

我想以a,b,c格式将数组插入MySQL数据库。

 `var_dump($pvt_contacts)`

结果

array(1) { [0]=> array(2) { [0]=> string(3) "102" [1]=> string(1) "3" } } 

我试过

`implode(',',$pvt_contacts)' 

但它正如我预期的那样回声阵列不是102,3。请帮帮我

6 个答案:

答案 0 :(得分:1)

如果你只想要102,3,那么你就是一个(你指向一个父数组,而不是元素):

implode(',',$pvt_contacts[0]);
  • 如果您尝试将数组存储在数据库中,我建议serialize。 (尽管它在Drupal,ExpressionEngine,Wordpress等中很流行,但这通常不是最好的主意。)
  • 如果您尝试将数组发送给js,我建议json_encode
  • 如果您正在做其他事情,我需要更多信息。

答案 1 :(得分:0)

建议使用多行来存储数据,而不是将整个数组存储到其中。如果你坚持,这就是方法:

将数组转换为以下格式:

[key1]{value1}#[key2]{value2}#.... etc

您可以使用explode将其转换回数组。

答案 2 :(得分:0)

最简单的方法应该是serialize()var_export()。但是,如果您不打算以任何方式使用数据库中的数据,那么您应该只使用它们。如果你想运行,例如对这个数组数据的SELECT查询应该以规范化的方式存储它。

答案 3 :(得分:0)

你应该使用serialize(),unserialize() 或者json_encode(),json_decode()

这样可以让您更轻松地编写和检索原始数据,而无需自己解析存储的数据。 以下是一些很好的链接,可以帮助您:

Preferred method to store PHP arrays (json_encode vs serialize)

http://php.net/manual/en/function.json-encode.php

http://php.net/manual/en/function.serialize.php

答案 4 :(得分:0)

您可以将数组implode转换为字符串,然后再explode。默认分隔符是,。如果您想运行SELECT查询,那么您可以使用特定于MySQL的FIND_IN_SET()函数,但是整个方案未推荐,您应该使用其他人建议的标准化方式

答案 5 :(得分:0)

一种方法是将数组转换为JSON。它会将数组转换为字符串,您将能够存储它。

无论如何,我认为这不是正确的方法如何处理问题。比如说,您需要将博客条目和标签存储到数据库中。

你怎么知道?

将博客条目和标签保存到一个表中,一行。您可以转换所有条目标记并将其全部保存到数据库中。

你应该怎么做?

制作两张桌子:

  • entries
  • entry_tags;

与条目相关的所有信息都保存到entries。例如:titledescription。 所有代码都保存到entry_tags。在该表中,id(主键),entry_id(与entries ID有关系的ID)和tag只保留名称。

我希望这会对你有所帮助!