如何在php中使用sql变量传递sql查询

时间:2017-03-04 20:20:24

标签: php mysql

我想在php中传递以下sql查询

SET @rank=0; SELECT @rank:=@rank+1 AS rank, `percentage_obtained`  FROM `result`  ORDER BY percentage_obtained DESC

在这里

mysql_query('SET @rank=0; SELECT @rank:=@rank+1 AS rank, `percentage_obtained`  FROM `result`  ORDER BY percentage_obtained DESC') or die(mysql_error());

但它会抛出以下错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近' SELECT @rank:= @rank + 1 AS等级,percentage_obtained FROM   result'在第1行

但是,当我直接在数据库中运行查询时,它可以正常工作。请协助。

1 个答案:

答案 0 :(得分:1)

mysql_query()不支持多个查询,因此您需要将它们分开。 您也可以使用 mysqli_multi_query - 但请注意,您需要 mysqli 而不是 mysql

所以

mysql_query('SET @rank=0') or die(mysql_error());
mysql_query('SELECT @rank:=@rank+1 AS rank, `percentage_obtained`  FROM `result`  ORDER BY percentage_obtained DESC') or die(mysql_error());

应该处理这个