无法理解Mysql / php

时间:2015-02-18 07:02:06

标签: php mysql

我正在阅读PHP脚本,我看到的代码/语法对我来说是全新的。任何人都可以详细告诉我它的真正含义吗?

$products = $this->db->select(
    array(
        'table'=>'product_categories pc, product_price pp, alias a, products p 
                    LEFT JOIN product_images pi 
                    ON 
                    pi.product_id = p.id ',
        'fields'=>'*',
        'condition'=>"pc.category_id='" . $row['id'] . "' 
                        AND 
                    pc.product_id = p.id 
                        AND 
                    pp.product_id = p.id  
                        AND 
                    a.table_id = p.id 
                        AND 
                    a.table_name = 'products'", 
        'order'=>'p.ordr ASC'));

1 个答案:

答案 0 :(得分:1)

数据库选择器接收数组会发生什么。

  • $array['table']部分中的所有表格和加入说明
  • $array['fields']部分是数组中需要选择的字段
  • $array['condition']中,行必须满足的所有要求才能包含在选择中。
  • 并在$array['order']部分中如何订购

就我个人而言,我认为这是一种非常混乱的方式。这基本上只是一个非常糟糕的。没有使用预准备语句,它比实际查询本身更麻烦

SELECT * FROM product_categories pc, product_price pp, alias a, products p 
                LEFT JOIN product_images pi 
                ON 
                pi.product_id = p.id 
    WHERE pc.category_id=:myid
                    AND 
                pc.product_id = p.id 
                    AND 
                pp.product_id = p.id  
                    AND 
                a.table_id = p.id 
                    AND 
                a.table_name = 'products' 
    ORDER BY p.ordr ASC

下次给你一个提示,清理代码,就像我对你的花絮一样。通常情况下,当它被设想时,它会变得清晰。更容易看到发生在哪里。

另外,我建议您阅读How can I prevent SQL injection in PHP?