2010-08-03 39 views
0

我有一个用户可以拥有多个权限(查看,编辑,删除,创建)的网站。它们中的每一个都作为tinyint(1)字段存储在数据库中。在PHP中查询MySQL权限

我正在寻找最好的(最快?)方法来查询MySQL,看看用户是否有能力看到这个页面。这里是一个片段:

$user = mysql_real_escape_string($user); 
$resultset = mysql_query("SELECT view FROM testbankAccess WHERE uid LIKE $user"); 
while($result = mysql_fetch_row($resultset)) { 
    if($result[0]=='1') { return true; } 
} 
return false; 
+1

...有什么问题呢?它工作吗? – FrustratedWithFormsDesigner 2010-08-03 13:43:40

回答

0
$resultset = mysql_query("SELECT view FROM testbankAccess WHERE uid=$user LIMIT 1"); 
$result = mysql_fetch_row($resultset) 
if($result[0]==1) { return true; } 

我想这不可能是快(有几乎没有发生在这里),只要UID是表中的一个关键。

2

首先,它可能比使用=的uid和$ user更快,而使用LIKE

然后,因为你只对第一个结果感兴趣,所以你不需要循环它们。

$result = mysql_fetch_row($resultset); 
return $result[0] == 1;