【发布时间】:2011-06-12 14:08:07
【问题描述】:
我的数据库中的一个字段是一个数组,它已使用implode() 函数转换为字符串。
当用户输入的值等于字段NAME的值时,如何从数据库中检索该字段(LESSONS)的内容并将其存储到字符串中?
提前感谢您提供的任何帮助。
【问题讨论】:
-
您能补充一些细节吗?你已经做了什么?什么代码不起作用?
我的数据库中的一个字段是一个数组,它已使用implode() 函数转换为字符串。
当用户输入的值等于字段NAME的值时,如何从数据库中检索该字段(LESSONS)的内容并将其存储到字符串中?
提前感谢您提供的任何帮助。
【问题讨论】:
给你:
$r = mysql_query('SELECT LESSONS FROM TABLE WHERE NAME=\'user_string\'');
$rows = mysql_fetch_assoc($r);
echo $rows['LESSONS'];
【讨论】:
我不知道我是否理解你的问题,但是...看看Stored Procedures
【讨论】:
如果您使用 implode 函数将数组转换为字符串,则此数据丢失了有关数组键的任何信息。
只要你想将数据转换回来,使用explode函数:
$array = explode(',', $columnData);
但是您因此不能在数据库中搜索数组键。
除此之外,MySQL 数据库(我假设您使用的是 MySQL)无论如何都无法搜索数组键。
您需要以其他方式将数据存储到 mysql 中,以便稍后在 SQL 中搜索它。
例如,您可以使用分组索引创建一个存储键/值组合的表。
但是 MySQL 有一些字符串函数可以帮助您在 MySQL 数据库中的(现在)字符串数据中进行搜索。
在搜索值时,在比较之前在字符串的开头添加一个逗号,在字符串的末尾添加一个逗号。有一个 MySQL 字符串函数可以连接字符串。然后在该表达式中搜索您的值,并在前后添加逗号。
然后您可以在 mysql 数据库中查找单个数组元素。 MySQL String Functions.
这只是一个快速的解决方案,它不适用于高性能的大型数据库。但是,它可能会在不更改数据库结构的情况下解决您的问题。
【讨论】: