2015-04-28 89 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