大sql查询 - 最佳实践

时间:2013-01-23 07:38:36

标签: php mysql session

我的php脚本在SESSION ARRAY变量中保存userid列表,以便在该页面上创建html链接。

当我们点击那个html链接时,另一个PHP脚本应该在html表中显示该用户ID的所有用户信息。

我需要您知道为此

创建SELECT查询的最佳做法
1) SELECT * from `users` WHERE  
`user_id` = '$array_valuer1' OR 
`user_id` = '$array_valuer2' OR 
`user_id` = '$array_valuer3' OR 
`user_id` = '$array_valuer4' OR 
`user_id` = '$array_valuer5' OR 
`user_id` = '$array_valuer6' OR 
----
----
`user_id` = '$array_valuern';

2) select all user --> SELECT * from `users`
   then using php script display only the userid in the SESSION array and skip other userid

这是最佳做法? SESSION数组是临时的,我不想保存在数据库中。

感谢

2 个答案:

答案 0 :(得分:3)

如果您在会话中存储的用户ID很少,那就没关系。但如果数量巨大,请不要将它们存储在SESSION中。最好使用查询来获取它们。

关于查询,您可以使用以下表单。

$q = "SELECT * from `users` WHERE `user_id` IN ('".implode("','", $array)."')";

答案 1 :(得分:1)

shiplu.mokadd.im答案很好,但使用PDO更好:

$db = new PDO("...");
$statement = $db->prepare("SELECT * from `users` WHERE `user_id` IN (':list')");
$statement->execute(array(':list' => implode("','", $array)));
$row = $statement->fetch();