【问题标题】:How do i store a field from a MySQL database as a string in PHP?如何将 MySQL 数据库中的字段存储为 PHP 中的字符串?
【发布时间】:2011-06-12 14:08:07
【问题描述】:

我的数据库中的一个字段是一个数组,它已使用implode() 函数转换为字符串。

当用户输入的值等于字段NAME的值时,如何从数据库中检索该字段(LESSONS)的内容并将其存储到字符串中?

提前感谢您提供的任何帮助。

【问题讨论】:

  • 您能补充一些细节吗?你已经做了什么?什么代码不起作用?

标签: php mysql


【解决方案1】:

给你:

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

【讨论】:

  • 我不明白 -1 因为这似乎是问题的正确答案。
【解决方案2】:

我不知道我是否理解你的问题,但是...看看Stored Procedures

【讨论】:

    【解决方案3】:

    如果您使用 implode 函数将数组转换为字符串,则此数据丢失了有关数组键的任何信息。

    只要你想将数据转换回来,使用explode函数:

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

    但是您因此不能在数据库中搜索数组键。

    除此之外,MySQL 数据库(我假设您使用的是 MySQL)无论如何都无法搜索数组键。

    您需要以其他方式将数据存储到 mysql 中,以便稍后在 SQL 中搜索它。

    例如,您可以使用分组索引创建一个存储键/值组合的表。

    但是 MySQL 有一些字符串函数可以帮助您在 MySQL 数据库中的(现在)字符串数据中进行搜索。

    在搜索值时,在比较之前在字符串的开头添加一个逗号,在字符串的末尾添加一个逗号。有一个 MySQL 字符串函数可以连接字符串。然后在该表达式中搜索您的值,并在前后添加逗号。

    然后您可以在 mysql 数据库中查找单个数组元素。 MySQL String Functions.

    这只是一个快速的解决方案,它不适用于高性能的大型数据库。但是,它可能会在不更改数据库结构的情况下解决您的问题。

    【讨论】:

    • 不需要关于索引键的信息,我打算使用explode()函数将从数据库返回的字符串转换为数组。以前数组上的键只是一个简单的基于 0 的数组。
    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2016-10-16
    相关资源
    最近更新 更多