我有一个在phpMyAdmin中运行的查询,但在通过php
运行时却没有这是查询:
DELETE FROM 'table' WHERE 'id' NOT IN ( SELECT DISTINCT id FROM ( SELECT * FROM 'table' ORDER BY scoreDESC LIMIT 10 ) foo)
基本上,它会对表格进行排序以降级,然后保留前10位并删除其余的表格。 我可以通过phpmyadmin运行这个很好的但我的PHP代码说没有
这是php脚本:
function add_highscore()
{
mysql_query("DELETE FROM highscores WHERE id NOT IN ( SELECT DISTINCT id FROM ( SELECT * FROM highscores ORDER BY score DESC LIMIT 10 ) foo)")
or die('0');
echo "1";
mysql_close($table_id);
}
连接没有问题,我在脚本中有更多功能。
有什么想法吗? 非常感谢帮助!
干杯,乔恩
答案 0 :(得分:0)
可能是函数未被调用或连接未建立。您应该尝试使用mysql_error来捕获错误或使用try catch来捕获错误
答案 1 :(得分:0)
试试这个:
<?PHP
function add_highscore()
{
$link = mysqli_connect($host, $user, $password, $database);
$query = "DELETE FROM highscores WHERE id NOT IN ( SELECT DISTINCT (id) FROM ( SELECT * FROM highscores ORDER BY score DESC LIMIT 10 ) foo)";
mysqli_query($link, $query) or die('0');
echo "1";
mysqli_close($table_id);
}
?>
MYSQL版本
<?PHP
function add_highscore()
{
$link = mysql_connect($server, $username, $password);
mysql_select_db($database_name, $link);
$query = "DELETE FROM highscores WHERE id NOT IN ( SELECT DISTINCT(id) FROM ( SELECT * FROM highscores ORDER BY score DESC LIMIT 10 ) foo)";
return mysql_query($query) or die('0');
echo "1";
mysql_close($link);
}
?>
答案 2 :(得分:0)
答案 3 :(得分:0)
将其添加到脚本的顶部:
error_reporting(E_ALL);
并替换:
die('0');
使用:
die(mysql_error());
这应该有助于表明脚本的“不工作”类型。