我有一个mysqli的问题。当我尝试在php
内使用它时,我给了我一个错误,但是当我在某些database application
中执行查询时,它完美地工作。这让我对Mysqli排名语法
SET @rank=0; SELECT (@rank := @rank+1)
错误在那里我可以执行它在mysql yog
正确。有没有其他的选择,我怎么才能使它工作?
下面的代码:
function get_rank($branch,$cat){
global $connection;
$result = array();
$rank = 0;
if ($statement = $connection->prepare("SET @rank=0; SELECT (@rank := @rank+1) AS rank, a.branch_code_id, SUM(b.amount), c.category FROM sales_add_h AS a INNER JOIN sales_add_i AS b ON a.id = b.sales_h_id INNER JOIN control_panel_item_create AS c ON b.item_code_id = c.id WHERE a.branch_code_id = ? AND c.category = ? GROUP BY c.category, a.branch_code_id, b.amount ORDER BY SUM(b.amount) DESC")) {
$statement->bind_param("is",$branch,$cat);
$statement->execute();
$statement->bind_result($a,$b,$c,$d);
while ($row = $statement->fetch()) {
array_push($result,array($a,$b,$c,$d));
}
$statement->close();
} else {
printf("Errormessage: %s\n", $connection->error);
echo " error in SQL Statement.";
}
return $result;
}
什么错误提示? – Raptor
SQL语句中出现“echo”错误。“;'** – Luv
您在准备使用的字符串中有多个语句。 Mysqli_prepare在单个语句上工作 - “准备SQL查询,并返回一个语句句柄用于语句的进一步操作,查询必须由单个SQL语句组成。” – Kickstart