简体   繁体   English

通过php与通过phpmyadmin发布SQL查询的结果不同

[英]Different result posting sql query through php than through phpmyadmin

Sorry if it's been asked before but I think this might be very specific to the query..I'm very new to both PHP and SQL but got a high scores system working and now stuck on one last thing...I have a query that if I paste into phpmyadmin it works fine, but when included between $sql ="" (in PHP) it doesn't. 抱歉,以前是否有人问过这个问题,但是我认为这可能是特定于查询的..我对PHP和SQL都非常陌生,但是系统的评分很高,现在还停留在最后一件事...我有一个查询那如果我粘贴到phpmyadmin中就可以了,但是当包含在$sql =""之间时(在PHP中)却不能。 In a vain attempt to debug it calling via a browser I can see the offending item just can't see why, in PHP: 在通过浏览器调试调用的徒劳尝试中,我可以看到有问题的项只是看不到为什么,在PHP中:

$sql = "SET @rownum := 0; SELECT * FROM (SELECT @rownum := @rownum+1 AS rank, ID, Username, Score, UDID FROM users ORDER BY Score DESC)
AS derived_table WHERE Username = 'Dave';";

This returns nothing...but paste it into phpmyadmin and it works fine, returns two entries sorted by score and displaying their rank. 这什么都不返回...但是将其粘贴到phpmyadmin中,并且工作正常,返回按分数排序并显示其排名的两个条目。

If I remove SET @rownum := 0; 如果我删除SET @rownum := 0; then it works but returns null for rank...so I guess the ; 然后它可以工作,但返回null的排名...所以我猜是; is causing it to terminate? 导致终止?

Any ideas would be a big help before I pull the last piece of hair out. 在我拉出最后一根头发之前,任何想法都会有很大帮助。

In a regular mysql API in PHP, this is not possible. 在PHP中的常规mysql API中,这是不可能的。 Try executing your queries separately (SET & SELECT) and use mysqli_multi_query . 尝试分别执行查询(SET&SELECT)并使用mysqli_multi_query http://se2.php.net/manual/en/mysqli.multi-query.php http://se2.php.net/manual/zh/mysqli.multi-query.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM