我想以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。请帮帮我
答案 0 :(得分:1)
如果你只想要102,3
,那么你就是一个(你指向一个父数组,而不是元素):
implode(',',$pvt_contacts[0]);
serialize
。 (尽管它在Drupal,ExpressionEngine,Wordpress等中很流行,但这通常不是最好的主意。)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)
答案 4 :(得分:0)
您可以将数组implode
转换为字符串,然后再explode
。默认分隔符是,
。如果您想运行SELECT
查询,那么您可以使用特定于MySQL的FIND_IN_SET()
函数,但是整个方案未推荐,您应该使用其他人建议的标准化方式
答案 5 :(得分:0)
一种方法是将数组转换为JSON。它会将数组转换为字符串,您将能够存储它。
无论如何,我认为这不是正确的方法如何处理问题。比如说,您需要将博客条目和标签存储到数据库中。
你怎么知道?
将博客条目和标签保存到一个表中,一行。您可以转换所有条目标记并将其全部保存到数据库中。
你应该怎么做?
制作两张桌子:
entries
,entry_tags
; 与条目相关的所有信息都保存到entries
。例如:title
,description
。
所有代码都保存到entry_tags
。在该表中,id
(主键),entry_id
(与entries
ID有关系的ID)和tag
只保留名称。
我希望这会对你有所帮助!