Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Predis存储表单数据_Php_Redis_Predis - Fatal编程技术网

Php 使用Predis存储表单数据

Php 使用Predis存储表单数据,php,redis,predis,Php,Redis,Predis,我尝试使用了lpush $list = "flavors"; $array = array($_GET["mainid"], $_GET["flavor1"], $_GET["flavor2"], $_GET["flavor3"]); $redis = new Predis\Client(); $redis->lpush($list,implode("", $array)); echo $redis->lrange(0, -1); 我尝试过使用hset $redis->hse

我尝试使用了
lpush

$list = "flavors";
$array = array($_GET["mainid"], $_GET["flavor1"], $_GET["flavor2"], $_GET["flavor3"]);
$redis = new Predis\Client();
$redis->lpush($list,implode("", $array));
echo $redis->lrange(0, -1);
我尝试过使用
hset

$redis->hset("flavors", $_GET["mainid"], $_GET["mainid"]);
$redis->hset("flavors", $_GET['mainid'] . "flavor1", $_GET["flavor1"]);
$redis->hset("flavors", $_GET['mainid'] . "flavor2", $_GET["flavor2"]);
$redis->hset("flavors", $_GET['mainid'] . "flavor3", $_GET["flavor3"]);
echo $redis->hgetall($_GET['mainid']);
但我无法使其工作,因为我遇到了以下错误:


我怎样才能解决这个问题?我认为这是关于当它需要一个字符串时被给予一个数组,但是我在那里有
内爆
,那么为什么它不能工作呢?如果它根本无法工作,我还可以使用什么样的Redis数据类型?

您在使用
lpush
时出现错误,因为
flavors
键已使用不同的Redis数据类型存储。因此,您应该在重试之前删除该密钥

您还以错误的方式使用了
lpush
。你应该试试这个:

foreach ($array as $value) {
    $redis->lpush($list, $value);
}
或者如果您的redis api支持多参数:

call_user_func_array(array($redis, 'lpush'), array_merge($list, $array));
如果您想通过
mainid
存储口味,您可能需要使用多个键存储口味,并使用
lpush

$list = "flavor:{$_GET['mainid']}";
$redis->lpush($list, $_GET["flavor1"]);
$redis->lpush($list, $_GET["flavor2"]);
$redis->lpush($list, $_GET["flavor3"]);
另一种方法是存储在单个散列中并使用json_编码(不要使用内爆):


使用
lpush
时出现该错误,因为
flavors
键已使用不同的Redis数据类型存储。因此,您应该在重试之前删除该密钥

您还以错误的方式使用了
lpush
。你应该试试这个:

foreach ($array as $value) {
    $redis->lpush($list, $value);
}
或者如果您的redis api支持多参数:

call_user_func_array(array($redis, 'lpush'), array_merge($list, $array));
如果您想通过
mainid
存储口味,您可能需要使用多个键存储口味,并使用
lpush

$list = "flavor:{$_GET['mainid']}";
$redis->lpush($list, $_GET["flavor1"]);
$redis->lpush($list, $_GET["flavor2"]);
$redis->lpush($list, $_GET["flavor3"]);
另一种方法是存储在单个散列中并使用json_编码(不要使用内爆):