Php 在SQL查询中从别名设置变量

Php 在SQL查询中从别名设置变量,php,sql,alias,Php,Sql,Alias,我有一个简单的连接查询: $lstCheck = $dbWHMCS->query('SELECT * FROM tblmonitorports mp INNER JOIN tblmonitorhosts h ON h.hst_id = port_mon INNER JOIN tblhosting ho ON ho.id = h.hst_serverid

我有一个简单的连接查询:

$lstCheck = $dbWHMCS->query('SELECT * FROM tblmonitorports mp 
                            INNER JOIN tblmonitorhosts h ON h.hst_id = port_mon 
                            INNER JOIN tblhosting ho ON ho.id = h.hst_serverid
                            INNER JOIN tblclients cl ON cl.id = ho.userid');

while ($data = $lstCheck->fetch())
{
            $serveridx = $data['ho.id'];
            $clientid = $data['cl.id'];
}
我的问题是,我在tblhosting和tblclients表中都有一个“id”列,因此我的变量都有相同的id。我试图在上面的示例中使用别名(ho.和cl.)设置它,但它不起作用。在上面的例子中,我如何做到这一点

谢谢大家!

这个怎么样?(对php细节有点生疏,但这应该可以做到):

这个怎么样?(对php细节有点生疏,但这应该可以做到):


您正在使用通配符
*
选择记录,因此不能选择这样的字段

根据您的查询
h.hst\u serverid
ho.userid
的值与您想要的值完全相同。所以就这么做吧

while ($data = $lstCheck->fetch())
{
            $serveridx = $data['hst_serverid'];
            $clientid = $data['userid'];
}
但是,选择特定的行也可能听起来更好

$lstCheck = $dbWHMCS->query('SELECT ho.id hid, cl.id cid, ....');

while ($data = $lstCheck->fetch())
{
            $serveridx = $data['hid'];
            $clientid = $data['cid'];
}

您正在使用通配符
*
选择记录,因此不能选择这样的字段

根据您的查询
h.hst\u serverid
ho.userid
的值与您想要的值完全相同。所以就这么做吧

while ($data = $lstCheck->fetch())
{
            $serveridx = $data['hst_serverid'];
            $clientid = $data['userid'];
}
但是,选择特定的行也可能听起来更好

$lstCheck = $dbWHMCS->query('SELECT ho.id hid, cl.id cid, ....');

while ($data = $lstCheck->fetch())
{
            $serveridx = $data['hid'];
            $clientid = $data['cid'];
}

谢谢Mirko,不管我怎么用,这都很可能奏效,因为我在页面的其余部分使用了40多列!我知道这可能会很痛苦,但通常最好的做法是包含所有列,不管有多少列。坦白地说,我也没有更好的答案,因为你可以做像ho这样的事情。*为了包括所有ho列,我不知道如何别名一个列,也包括所有列。感谢Mirko,这很可能会工作,但我使用*因为我在页面的其余部分使用了超过40列!我知道这可能会很痛苦,但通常最好的做法是包含所有列,不管有多少列。坦白地说,我也没有更好的答案,因为你可以做像ho这样的事情。*要包含所有ho列,我知道没有办法为单个列别名,也无法包含所有列。