Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-无法执行在phpMyAdmin中工作的mysql_Php_Mysql_Phpmyadmin - Fatal编程技术网

php-无法执行在phpMyAdmin中工作的mysql

php-无法执行在phpMyAdmin中工作的mysql,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我有这张桌子玩游戏 scores (user,score) 其中包含一些条目,我有以下查询: SET @row_num = 0; SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC 它可以在phpmyadmin中工作,但不能在php代码中工作 $query = "set @row_num = 0; SELECT @row_num := @row_num + 1 a

我有这张桌子玩游戏

scores (user,score)
其中包含一些条目,我有以下查询:

SET @row_num = 0; 
SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC
它可以在phpmyadmin中工作,但不能在php代码中工作

$query = "set @row_num = 0; SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC";
$result = mysql_query($query) or die(mysql_error());
php已正确连接到mysql数据库,在此之前我还进行了其他查询,一切正常

它说:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY s' at line 1
你认为可能是什么? 非常感谢。
Alessandro

这是因为phpMyAdmin为您拆分分号上的查询。MySQL服务器不这样做,PHP MySQL扩展也不这样做

您需要将它们分离为两个单独的mysql\u查询调用

旁注:PHP mysql扩展已被弃用,建议您对任何新代码使用PDO或mysqli。请在您未来的开发过程中牢记这一点。

首先,mysql\u查询被删除

您不能在一个mysql\u查询调用中运行两个查询

您必须执行以下操作:

$query1= "set @row_num = 0;";
$query2 = "SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC";
$result1 = mysql_query($query1);
$result2 = mysql_query($query2);

尝试拆分为两个查询:

$query = "set @row_num = 0;";
$query2 = " SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC;";
$result = mysql_query($query) or die(mysql_error());
$result1 = mysql_query($query2);

好的,我不知道,谢谢,现在我如何选择结果表?好的,我不知道,谢谢,现在我如何选择结果表?好的,我不知道,谢谢,现在我如何选择结果表?你尝试过内部选择吗?我不知道如何进行内部选择,你能给我举个例子吗?代码集@row_num=0;代码SELECT*FROM选择@row\U num:=@row\U num+1作为row\U索引,用户,分数从分数顺序按分数描述计算,其中row\U num=3;我怎样才能做到这一点?从世界人口中选择姓名>从世界人口中选择姓名=‘俄罗斯’;因此,请使用您先前选择的另一个内部条件。或从内部:从SELECT*中选择名称,从name='Russia'所在的世界中选择名称;。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。
$query = "set @row_num = 0;";
$query2 = " SELECT @row_num := @row_num + 1 as row_index, user, score FROM scores ORDER BY score DESC;";
$result = mysql_query($query) or die(mysql_error());
$result1 = mysql_query($query2);