我如何在php中使用两个mysql查询与用户定义的变量

时间:2013-12-10 02:29:15

标签: php mysql variables

select @min_price:=min(prd_sale_price),@max_price:=max(prd_sale_price) from ct_product;
select * from ct_product where prd_sale_price=@min_price or prd_sale_price=@max_price;

此查询适用于mysql控制台

$query = "
select @min_price:=min(prd_sale_price),@max_price:=max(prd_sale_price) from ct_product;
select * from ct_product where prd_sale_price=@min_price or prd_sale_price=@max_price;
";

$result = mysql_query($query);

此代码在php中引发错误

所以,我试过这个

$query="
select * from ct_product, (select @min_price:=min(prd_sale_price),@max_price:=max   (prd_sale_price) from ct_product) as b 
where prd_sale_price=@min_price or prd_sale_price=@max_price
";

$result = mysql_query($query);

有效

...

$query = "
select @min_price:=min(prd_sale_price),@max_price:=max(prd_sale_price) from ct_product;
select * from ct_product where prd_sale_price=@min_price or prd_sale_price=@max_price;
";

$result = mysql_query($query);

这条代码在没有修改的情况下可以正常工作的方式是什么?

2 个答案:

答案 0 :(得分:4)

使用两次拨打mysql_query

$query1 = "select @min_price:=min(prd_sale_price),@max_price:=max(prd_sale_price) from ct_product";
$query2 = "select * from ct_product where prd_sale_price=@min_price or prd_sale_price=@max_price";

mysql_query($query1);
mysql_query($query2);

变量与数据库连接相关联,因此它们将在调用之间保持不变。

答案 1 :(得分:0)

PHP中的

mysql_query()一次只能处理一个查询

您不能同时使此方法处理2个查询

我的建议是为每个查询使用mysql_query()