2015-04-28 127 views
0
for($i = 0;$i<10;$i++) 
     { 
      $query1 ="SELECT `id` FROM radcheck ORDER BY `id` DESC LIMIT 1;"; 
      $lololo= mysql_query($query1) or die(mysql_error()); 
      //echo $lololo; 
      $query = "INSERT INTO radcheck (username,attribute,op,value) VALUES ('teleuser".$lololo."','Cleartext-Password',':=','$arr1[$i]')"; 
      mysql_query($query) or die(mysql_error()); 
     } 

我想检索我的最新ID值附加我的用户名。并且检索值总是'资源ID#4'。 有没有办法解决它? 谢谢。php错误:资源ID#4

+0

不要引用'1'和'用单引号id',否则他们将被视为字符串文字 –

+0

我爱SQL错误消息:*您的SQL语法错误; * **检查与您的MySQL服务器版本对应的手册** *以获得正确的语法* – Rizier123

+0

从radcheck中选择id WHERE id = 1 ORDER BY'id'DESC; –

回答

3

Mysql不支持TOPSQL Server。 而不是使用TOP你可以使用MySQL LIMIT所以您的查询将是:

SELECT `id` FROM radcheck ORDER BY `id` DESC LIMIT 1; 
+0

它解决了语法错误,但我得到了'资源ID#4'。 –

+1

@KassieTeo让我猜测:你这样做:'echo $ lololo;',* right *? - >你必须取得你的结果 – Rizier123

+0

@ Rizier123其实我想得到我最新的id值,并附上我的用户名。 –

0

周围字段名称中删除'秒 -

但作为大安告诉它不会mysql工作,那么ORDER & LIMIT会做的伎俩。

"SELECT id FROM radcheck ORDER BY id DESC LIMIT 1"; 
+0

为什么它应该是这样的?而不是另一种方式? – Rizier123

+0

他无法使用MySQL – Daan

+0

@ Rizier123是的,还有其他方法。但OP使用这种方式。 –

1

你不必使用周围列名的单引号。如果你需要逃避它使用反引号。而TOP不是mysql语法。你必须使用限制

SELECT `id` FROM radcheck ORDER BY `id` DESC limit 1 

不要再使用depricated mysql_* API。使用mysqli_*PDO

+0

@Daan谢谢你的提示。改变了我的答案。 – Jens

0

我希望你永远不会介意尝试这种模式

Select id from radcheck WHERE id=1 ORDER BY 'id' DESC ; 
+1

虽然代码是赞赏的,它应该总是有一个附带的解释。这不需要很长时间,但它是预期的。 – peterh