2011-06-12 105 views
0

我的數據庫中的一個字段是使用implode()函數轉換爲字符串的數組。如何將字段從MySQL數據庫存儲爲PHP中的字符串?

如何從數據庫中檢索該領域(LESSONS)的內容,並將其存儲到字符串,當用戶輸入的值等於場NAME的價值?

在此先感謝您提供的任何幫助。

+0

你可以添加一些細節?你已經做了什麼?什麼代碼不起作用? – Michas 2011-06-12 14:28:58

回答

1

在這裏你去:

$r = mysql_query('SELECT LESSONS FROM TABLE WHERE NAME=\'user_string\''); 
$rows = mysql_fetch_assoc($r); 
echo $rows['LESSONS']; 
+0

我不明白-1,因爲這似乎是問題的正確答案。 – 2011-06-12 14:24:52

0

我不知道如果我理解你的問題,但是......看看關於Stored Procedures

+0

沒有答案。 – 2011-06-12 15:00:38

0

如果您使用的破滅功能,您的數組轉換成字符串,那麼這個數據已經失去了關於數組鍵的任何信息。

至於你想將數據轉換回,使用爆炸功能:

$array = explode(',', $columnData); 

但因此,你不能搜索數據庫中的數組鍵。

接下來,MySQL數據庫(我假設你正在使用MySQL)無論如何都無法搜索數組鍵。

您需要以某種其他方式將數據存儲到mysql中,以便稍後在SQL中進行搜索。

例如,您可以創建一個存儲具有分組索引的鍵/值組合的表。

但是,MySQL有一些字符串函數可以幫助您在MySQL數據庫的(現在)字符串數據中搜索。

當搜索一個值時,在比較之前,在字符串的開頭和結尾添加一個逗號。有一個可以連接字符串的MySQL字符串函數。然後在表達式中搜索您的值,同時在前面和後面添加逗號。

然後,您可以查看mysql數據庫中的單個數組元素。 MySQL String Functions

這只是一個快速解決方案,這不適用於大型數據庫性能。但它可能會解決您的問題而不會更改您的數據庫結構。

+0

關於索引鍵的信息是不需要的,我打算使用explode()函數將我從數據庫中獲取的字符串轉換爲數組。先前陣列上的鍵只是一個簡單的基於0的數組。 – Stevan 2011-06-12 14:25:33

+0

@Stevan:更新了我對新信息的回答。 – hakre 2011-06-12 14:34:56

相關問題