PHP怎么执行有带分号的MYSQL语句?我想要搞一个排名的字段. SET @mycnt =0;  
SELECT (@mycnt := @mycnt +1) AS rankings,uid,sum() AS s FROM bo_log  GROUP BY uid ORDER BY s DESC
但是这样的话再MYSQL里面可以执行. 但是在PHP里的mysql_query就不能用了.. 如果把分号去掉在MYSQL里面不能用了rankings会变成空值

解决方案 »

  1.   

    另外,用存储过程和mysqli_multi_query都可以
      

  2.   

    mysqli_multi_query
    学习 了
      

  3.   

    mysqli_multi_query. 但是怎么输出结果啊. 我都输出不了````````
      

  4.   


    嗯,csdn的搜索不行你仿照这个写select @a:=@a+1, id
    from k, 
    (select @a:=2 ) tmp
    order by id
    ;
      

  5.   

    不允许一次执行多行sql指令时php防止sql注入的措施你分开来执行就可以了mysql_query('SET @mycnt =0');
    $rs = mysql_query("SELECT (@mycnt := @mycnt +1) AS rankings,uid,sum() AS s FROM bo_log GROUP BY uid ORDER BY s DESC");
      

  6.   


    但是这样子最后的出来的rankings是NULL
      

  7.   

    应该如此:
    SELECT (@mycnt := @mycnt +1) AS rankings,uid,sum() AS s 
    FROM bo_log, (select @mycnt:=0 ) tmp
    GROUP BY uid 
    ORDER BY s DESC另,你真的不打算用存储过程和mysqli_multi_query ?