Php 使用mysql执行许多查询可以吗?还是应该进行优化?
我对编程比较陌生,一直在一个项目组工作,以创建我们第一个合适的网站。我们有产品和一个页面,根据选择的类别,我们希望在其中显示多个产品Php 使用mysql执行许多查询可以吗?还是应该进行优化?,php,mysql,oop,Php,Mysql,Oop,我对编程比较陌生,一直在一个项目组工作,以创建我们第一个合适的网站。我们有产品和一个页面,根据选择的类别,我们希望在其中显示多个产品 $productlist = new ProductList($DB_con, htmlspecialchars($_POST['categoryID'])); $productids = $productlist->getids(); $product = new Product($DB_con); foreach ($productids as $id
$productlist = new ProductList($DB_con, htmlspecialchars($_POST['categoryID']));
$productids = $productlist->getids();
$product = new Product($DB_con);
foreach ($productids as $id) {
$product->read($id);
echo $product->productname
}
这只是我所说的一个基本示例,但本质上,
foreach
循环将在read($id)
上迭代多次,这意味着它将对每个产品执行一个查询。现在我的问题是,这是否真的是一种可以接受的方式,或者我是否应该执行一个查询,并以某种方式从该查询中获取数据(或任何其他替代方法)。这可能是SQL的一项工作,其中
。如果您有一组ID,只需运行:
从id位于(1、2、3、4、5、n…)的产品中选择*
您可以通过以下方式生成数字:
$ids = implode(", ", $productids);
$sql = "SELECT * FROM products WHERE id IN ({$ids})";
这可能是SQL
的作业,其中位于
。如果您有一组ID,只需运行:
从id位于(1、2、3、4、5、n…)的产品中选择*
您可以通过以下方式生成数字:
$ids = implode(", ", $productids);
$sql = "SELECT * FROM products WHERE id IN ({$ids})";
通常,执行单个查询(可能使用联接)的效率要高得多。。。每次往返数据库都是一个很大的开销,最好运行一个查询并从某个类别中提取所有产品。如果您的表结构设置正确,这并不难实现。执行单个查询(可能使用联接)通常效率更高。。。每次往返数据库都是一个很大的开销,最好运行一个查询并从某个类别中提取所有产品。如果您的表结构设置正确,这并不难实现。这非常有用,我会记住的!不过,我最终只是将位重写为一个查询。这非常有用,我会记住的!不过,我最终只是将位重写为一个查询。