我如何分别回显 helper tbl status 列和 getter tbl status 列字段

Posted

技术标签:

【中文标题】我如何分别回显 helper tbl status 列和 getter tbl status 列字段【英文标题】:How can i echo out the helper_tbl status column seperately and the getter_tbl status column field too 【发布时间】:2020-02-06 00:12:22 【问题描述】:

我希望能够指定正在回显的表格列。

当我尝试从帮助列打印出来时,我变得空白

$query = $db->fetch("SELECT n.*, g.* FROM helper AS n LEFT JOIN getter AS g ON n.user_id= g.user_id WHERE n.user_id='$id' OR g.user_id='$id' ");

if($query !== '')
    foreach($query as $value)
        $output .= $value['n.status'];
    
    print $output;

【问题讨论】:

您的代码易受 SQL 注入攻击。您应该使用准备好的语句。 【参考方案1】:

您的问题是两列都称为status,因此当结果数组形成时,第二个status 值会覆盖第一个值(因为对于给定的关联键,php 数组只能有一个值)。您可以使用列别名解决这个问题:

$query = $db->fetch("SELECT n.*, g.*, n.status as n_status, g.status as g_status
                     FROM helper AS n 
                     LEFT JOIN getter AS g ON n.user_id= g.user_id 
                     WHERE n.user_id='$id' OR g.user_id='$id' ");
if($query !== '')
    foreach($query as $value)
        $output .= $value['n_status'];
    
    print $output;

请注意,您的user_id 列(可能还有其他列)也会遇到同样的问题。一般来说,最好单独枚举你想要的列(而不是使用*),这样你就可以从一开始就避免这个问题。

【讨论】:

@Okorokelechi 不用担心 - 我很高兴能提供帮助。

以上是关于我如何分别回显 helper tbl status 列和 getter tbl status 列字段的主要内容,如果未能解决你的问题,请参考以下文章

git status 显示重命名但不正确

mysql存储过程

如何提高这个mysql查询的速度

PHP / SQL Ban状态未回显

打印pdf

Ext中setValue和setRawValue