使用OO-PHP优化SQL请求

使用OO-PHP优化SQL请求,php,sql,oop,optimization,Php,Sql,Oop,Optimization,我想知道是否有一种方法可以使用OO PHP完全优化我的SQL请求。让我们举个例子,我们有3个对象类,命名为3个表: 产品:id、名称、价格、颜色 客户:身份证、姓名、姓氏、电子邮件 购物车:id,id\u产品,id\u客户 所有的接球手和接球手都是经典的。 现在,我只想在我的付款页面上显示产品[名称]和客户[姓氏]。 相应的完全优化请求是 在product.id=cart.id\u customer.id=cart.id\u customer上从购物车内部加入产品中选择product.nam

我想知道是否有一种方法可以使用OO PHP完全优化我的SQL请求。让我们举个例子,我们有3个对象类,命名为3个表:

  • 产品:id、名称、价格、颜色
  • 客户:身份证、姓名、姓氏、电子邮件
  • 购物车:id,id\u产品,id\u客户
所有的接球手和接球手都是经典的。 现在,我只想在我的付款页面上显示产品[名称]和客户[姓氏]。 相应的完全优化请求是

在product.id=cart.id\u customer.id=cart.id\u customer上从购物车内部加入产品中选择product.name、customer.name


在哪里或如何使用OOP生成这个完全优化的请求?不必检索整个对象并在以后处理它们?我是否必须为每个需要优化的sql请求创建一个方法?也许是一个请求生成器?

我不太清楚,但也许像这样的东西会让你兴奋起来:

function findIt($table,$field,$value)
{
    $table=$mysqli->real_escape_string($table);
    $field=$mysqli->real_escape_string($field);
    $value=$mysqli->real_escape_string($value);
    if ($result = $mysqli->query
        ("SELECT * FROM $table WHERE $field like '$value' LIMIT 0,1;")) 
    {
        return $result->fetch_object();
    }
}    
称之为:

$oCart=findIt('cart','id','SomeID');
echo $oCart->name;

我要找的是ORM,因为它可以自动管理请求优化。但ORM非常有约束性。因此,我必须创建一个函数,以优化的方式生成请求。

也许您可以研究一下为您实现这一点的ORMs,包括各种优化。spreep支持即时关系加载(一次检索所有表,而不是分别检索每个表),并且可以延迟加载列(在不经常使用某些列的基础上对它们发出单独的请求,便于blob等)。看看条令,虽然我不知道那个。@halfer我想知道我的代码中有什么,ORMs从我这里得到了这个,这正是我想要的,但它不能管理关节。我必须制作我自己的请求生成器,所以?正如我所说,这是一个跳跃式的开始,让你朝着正确的方向前进。您可以使用我的模型并扩展它以支持联接。