所以我有一个值为0, 1, 2的PHP数组"$shared“。我想从我的MySQL数据库中插入和检索这个数组,但它不起作用。
目前,我使用以下代码来插入它:
mysqli_query($dbhandle, "INSERT INTO table (arraytest) VALUES ('$shared')");在上面的代码之后,列“arraytest”中“table”中的值是“数组”,而不是0、1、2,或者在MySQL数据库中数组应该是什么样子。
在将数组插入到我的数据库中之后,我想要检索它,并且当前正在使用以下代码:
$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数组()插入到数据库表中的一个单元格中,然后从数据库中检索该数组,并检查之前插入到数据库中的数组中是否存在某个特定值。
附注:我并不是要从数据库中检索一整列的值作为数组。这是我在谷歌上搜索答案时发现的,但这不是我想要做的。
发布于 2013-05-24 04:15:27
我不得不问您为什么要这样做,但最简单的答案是序列化数组。
"INSERT INTO table (arraytest) VALUES ('" . serialize($shared) . "')"然后,您可以在从数据库中检索unserialize时使用它
您应该适当地参数化您的查询,以防止注入或错误。
发布于 2013-05-24 04:19:54
或者使用json_encode()从数组中生成JSON字符串(然后使用json_decode()将其转换回来)。
我遇到过一些用方式表示数据的情况,通常是记录的“附加”信息很难压入模式中,因为它是逐条记录地更改。特别是,如果不将整个表读入内存,您将很难查询存储在此数组中的信息。
发布于 2013-05-24 04:20:04
不能将PHP数组插入到数据库中。你的问题是:
$arr = new Array(1,2,3);
echo $arr; // prints "Array"在PHP的字符串上下文中使用数组时,您只会得到单词" array ",而不是数组的内容。你必须在数组上运行一个循环来插入每个单独的值,例如
foreach($arr as $val) {
INSERT INTO yourtable VALUES ($val)
}https://stackoverflow.com/questions/16723054
复制相似问题