2015-03-31 88 views
-1

我正在嘗試爲我的網站構建一個非常簡單的登錄系統(僅用於練習我正在進行的項目)。我決定實施它的方式是使用包含ID,名稱,密碼和用戶名字段的表格,並在現有表格中搜索輸入的信息。使用PHP查找SQL列的大小?

對於註冊,它只是注入提供給表中的信息,並且我想分配一個客戶ID號。我分配ID號的想法是簡單地找到ID列的大小(它將包含ID的1,2,3..etc直到最後),並將新的註冊分配給長度+1。爲此,我需要一種方法來獲得列的大小,但我只是學習PHP和SQL,所以我不確定語法是什麼。

TLDR;有沒有在SQL中的功能,我可以使用PHP來獲取特定列的長度? (即存儲在該列中的條目數?)

+2

你正在嘗試重新創建SQL的'AUTO_INCREMENT'列屬性。 – lafor 2015-03-31 23:00:19

+0

你想使用AUTO_INCREMENT,因爲重新創建它就像你試圖做的一樣,最終會出現重複。 – developerwjk 2015-03-31 23:01:06

回答

1

將ID列設置爲主要和自動增量。

你不會在你的查詢中包含它自己創建的。

0

你可能會更好使用IDENTITY或AUTO_INCREMENT列。與檢查的「列大小」的問題(由我假設你的意思是該列的行數)時,你可能最終插入重複的ID,例如:

ID | ... 
--------- 
1 
2 
4 

所以,如果你做了一個SELECT COUNT(ID)+1 FROM MyTable,它會返回4,並且你有一個ID衝突。

您可以執行類似SELECT MAX(ID)+1 FROM MyTable的操作,但即使如此,也可能存在併發問題(進程A和進程B都嘗試同時運行該查詢,然後才能插入新的ID 5)。你真的最好只是讓你的RDBMS照顧它。

+0

聽起來很完美,謝謝。我現在會研究它,就像我說我是新的,所以我非常感謝它! – briansrls 2015-03-31 23:01:25

+1

由於您使用PHP,我假設您使用的是MySQL。以下是如何在列上使用mySQL的AUTO_INCREMENT關鍵字的一個很好的例子。 http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html – Stenerson 2015-03-31 23:04:58