我想以格式a,b,c將數組插入到我的MySQL數據庫中。在MySQL數據庫中插入數組
`var_dump($pvt_contacts)`
導致
array(1) { [0]=> array(2) { [0]=> string(3) "102" [1]=> string(1) "3" } }
我試圖
`implode(',',$pvt_contacts)'
但回聲陣列不是102,3如我所料。請幫我
我想以格式a,b,c將數組插入到我的MySQL數據庫中。在MySQL數據庫中插入數組
`var_dump($pvt_contacts)`
導致
array(1) { [0]=> array(2) { [0]=> string(3) "102" [1]=> string(1) "3" } }
我試圖
`implode(',',$pvt_contacts)'
但回聲陣列不是102,3如我所料。請幫我
如果你只是想102,3
,那麼你關閉一(你指向一個父陣列,而不是元素):
implode(',',$pvt_contacts[0]);
serialize
。 (儘管在Drupal,ExpressionEngine,Wordpress等流行,這通常不是最好的主意)。json_encode
。建議使用多行來存儲數據,而不是將整個數組存儲在其中。如果你堅持,這裏是這樣的:
轉換您的陣列以下格式:
[key1]{value1}#[key2]{value2}#.... etc
您可以使用explode
將其轉換回陣列。
最簡單的方法應該是serialize()或var_export()。但是,如果您不打算以任何方式使用數據庫內的數據,則只應使用這些數據。如果你想運行例如對這個數組數據的SELECT查詢應該以規範化的方式進行存儲。
您應該使用序列化(),反序列化() 或json_encode(),json_decode()
這將使它更容易爲你寫的,retreive回原始數據,而不需要分析你的存儲數據你自己。 這裏有一些很好的聯繫,以幫助您:
Preferred method to store PHP arrays (json_encode vs serialize)
您可以implode
您的數組轉換成字符串,然後explode
回來。默認分隔符是,
。如果你想運行SELECT
查詢,那麼你可以使用MySQL特有的FIND_IN_SET()
函數,但是這整個場景是沒有推薦,你應該使用規範化的方式,如上面提出的其他方法。
一種方法是將數組轉換爲JSON。它會將數組轉換爲字符串,您將能夠存儲它。
無論如何,我不認爲這是正確的方式如何處理這個問題。比方說,例如,您需要將博客條目和標籤存儲到數據庫中。
你如何知道?
將博客條目和標籤保存到一個表中,一行。您將所有條目標籤轉換並保存到數據庫中。
你應該怎麼做?
讓兩個表:
entries
,entry_tags
;與條目相關的所有信息保存到entries
。例如:title
,description
。 所有標籤保存到entry_tags
。在該表中有id
(主鍵),entry_id
(與entries
ID有關係的ID)和tag
,它們只是保存名稱。
我希望這會幫助你!
我明白你想要什麼,但我必須告訴你這是一個非常可怕的方式來做到這一點。你想要達到什麼目的?有**必須是另一種方式來做到這一點。在mySQL中存儲數組是錯誤的。 – SteeveDroz
你讓我錯了Oltarus。其實我有一個數組$ pvt_contacts,我想以格式102,2,4 –
插入數據庫什麼是你的查詢?我很確定我知道問題出在哪裏... – misterjinx