É porque o
mysql_query
A função aceitará apenas uma consulta, mas você deu duas, separadas por um ponto e vírgula. Tente também:-
Executando cada consulta separadamente (não sei se isso funcionará):
mysql_query( "SET @N=-1" ); mysql_query( "SELECT `id`, (@N:[email protected]+1) AS `mycount` FROM `mydb`" );
-
Usando mysqli com a multi_query função (ou um PDO equivalente, se houver).
Para responder à sua pergunta atualizada:verifique a página de manual do PHP para multi_query. Acho que você vai querer usar
mysqli::next_result
. Algo assim, usando o estilo procedural:mysqli_multi_query($link, $query);
mysqli_next_result($link);
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}