我正在开发PHP和MySQL。
有关当前登录用户的信息存储在许多不同的表中。我在每页上需要的信息,我预加载。但是,如果从很少访问的表中需要某些东西 - 那么我就
$newdata = $db->Query('SELECT * FROM rare_table WHERE user_id='.$user->id);
我想简化上述内容,以便我不必指定查询应限于此特定用户。一个理想的函数调用是:
$newdata = $user->Query('SELECT * FROM rare_table');
显然我必须解析SQL并添加一个WHERE子句。或者添加到现有的子句中。
问题:有没有工具可以做到这一点?我怎样才能发展这个?这甚至是个好主意吗?
修改:找到一个SQL parser,可以帮助那些有兴趣这样做的人。
答案 0 :(得分:0)
我通常创建一个名为User的类,并为每个页面实例化一个单例(使用登录用户)。可以为其他用户创建其他实例(例如$ u2 = new User($ name);)然后将这些内容嵌入到User中。
答案 1 :(得分:0)
您希望向用户添加功能
public function getRow($tableName)
{
$sql = "SELECT * FROM $tableName WHERE user_id = " . $this->$id;
//run query
问题是获得$ db,它属于用户吗?你有功能吗?
public function getRowFrom($tableName)
{
$sql = "SELECT * FROM $tableName WHERE user_id = " . $this->$id;
$db = getDb(); //however you need to do this. $this->db, DBTools::getDB(), call constructor here, etc.
return $db->Query($sql);
}
并将其命名为
$user->getRowFrom('rareTableNo4');