首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP语言在MySQL数据库中插入和检索数组值?

问如何使用PHP语言在MySQL数据库中插入和检索数组值?
EN

Stack Overflow用户
提问于 2013-05-24 04:13:35
回答 5查看 1.8K关注 0票数 3

所以我有一个值为0, 1, 2的PHP数组"$shared“。我想从我的MySQL数据库中插入和检索这个数组,但它不起作用。

目前,我使用以下代码来插入它:

代码语言:javascript
复制
mysqli_query($dbhandle, "INSERT INTO table (arraytest) VALUES ('$shared')");

在上面的代码之后,列“arraytest”中“table”中的值是“数组”,而不是0、1、2,或者在MySQL数据库中数组应该是什么样子。

在将数组插入到我的数据库中之后,我想要检索它,并且当前正在使用以下代码:

代码语言:javascript
复制
$id='2';

$result = mysqli_query($dbhandle, "SELECT arraytest FROM table");

while ($row = mysqli_fetch_array($result)) {

$shared=$row{'arraytest'};

if(in_array($id, $shared)){

    echo 'Value is in the array. Success!';

}

}

我在网上做了一些调查,还没有找到具体的方法。

我想要将PHP数组()插入到数据库表中的一个单元格中,然后从数据库中检索该数组,并检查之前插入到数据库中的数组中是否存在某个特定值。

附注:我并不是要从数据库中检索一整列的值作为数组。这是我在谷歌上搜索答案时发现的,但这不是我想要做的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-24 04:15:27

我不得不问您为什么要这样做,但最简单的答案是序列化数组。

代码语言:javascript
复制
"INSERT INTO table (arraytest) VALUES ('" . serialize($shared) . "')"

然后,您可以在从数据库中检索unserialize时使用它

您应该适当地参数化您的查询,以防止注入或错误。

票数 5
EN

Stack Overflow用户

发布于 2013-05-24 04:19:54

或者使用json_encode()从数组中生成JSON字符串(然后使用json_decode()将其转换回来)。

我遇到过一些用方式表示数据的情况,通常是记录的“附加”信息很难压入模式中,因为它是逐条记录地更改。特别是,如果不将整个表读入内存,您将很难查询存储在此数组中的信息。

票数 1
EN

Stack Overflow用户

发布于 2013-05-24 04:20:04

不能将PHP数组插入到数据库中。你的问题是:

代码语言:javascript
复制
$arr = new Array(1,2,3);
echo $arr; // prints "Array"

在PHP的字符串上下文中使用数组时,您只会得到单词" array ",而不是数组的内容。你必须在数组上运行一个循环来插入每个单独的值,例如

代码语言:javascript
复制
foreach($arr as $val) {
   INSERT INTO yourtable VALUES ($val)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16723054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档