0

这是我的表“用户”的外观:

Name Password Favorites

Test Test     1 2 3 4

在我的表“数据”中,我有

Comment ID
"Test"  2

我希望用户能够将评论保存到其收藏夹,因此在第一个表格中,我将所有收藏夹保存在一行中,因此表格不会变得太大。我尝试通过 implode 和 IN 子句将它们全部恢复。现在它似乎不起作用,我希望这里的人可以给我一些关于如何克服这个问题的有用输入:)

$favoritenstring = ($GET_["favoritenstring"]);

$query = "SELECT * FROM $table_id WHERE ID in ('" . implode("','",$favoritenstring) . "')";

现在我在上面的查询行上收到了这个错误:传递了无效的参数

4

3 回答 3

2

您必须首先从字符串中删除斜杠:

$string = stripslashes($favoritenstring);
$query = "SELECT * FROM $table_id WHERE ID in " .$string;
于 2012-08-03T11:36:28.920 回答
2

改变这个...

($GET_["favoritenstring"]);

($_GET["favoritenstring"]);
于 2012-08-03T11:07:49.990 回答
2

尝试这个:

$query = "SELECT * FROM $table_id WHERE ID in ( ";

$myVars=explode($favoritenstring);
$numFavs=count(explode(' ', $favoritenstring));
for($i=0;$i<$numFavs;$i++)
{
    $query.=$myVars[$i];
    if($i<($numFavs-1))
    {
        $query.=", ";
    }
}

$query.=");";
于 2012-08-03T11:08:02.803 回答