1

我有一个包含一个数组的会话,并且该数组充满了 id。从 MySQL 表中选择与这些 id 对应的所有行的最佳方法是什么?

所以我需要类似的东西:

SELECT * FROM table WHERE id = $_SESSION['ids']

显然,这不起作用,因为 $_SESSION['ids'] 是一个数组。

4

3 回答 3

3
     SELECT * 
     FROM 
        table
     WHERE 
         find_in_set(id, $_SESSION['ids'])>0
于 2013-10-08T11:59:53.640 回答
2

您可以只使用INSQL 运算符。在这种情况下,您的查询将如下所示

$sql = 'SELECT * FROM table WHERE id IN ("' . implode('","', $_SESSION['ids'] . '")';

此代码将产生如下查询:

SELECT * FROM table WHERE id IN ("1", "2", "foo");

希望能帮助到你

于 2013-10-08T12:00:52.203 回答
1

嗨试试这个,

 $var = $_SESSION['ids'];

 and then fire your query as

 $sql = SELECT * FROM table WHERE id = '$var';
于 2013-10-08T11:59:32.350 回答