簡體   English   中英

將 ID 插入到 SQL 表中,ID 號相同的問題

[英]Inserting ID in to SQL table, problem with same ID number

我不想將 SQL Server 表的 ID 號設置為自動遞增。 所以我在我的 PHP 程序中設置了這個數字。 我這樣做的方法是獲取表的當前 ID 值,然后向其添加 +1,然后將這個數字插入表中。

例子:

$query = "SELECT MAX(ID) FROM T01"; 
$result=sqlsrv_query($conn, $query);
$IDTable = sqlsrv_fetch_array($result);

$Column1= getPOST('Column1' . $column); 
$Column2= getPOST('Column2' . $Column);
$ID1 = $IDTable[0]+1;
$params = array(&$ID1,&$Column1,&$Column2);

# Statement
$sql = "INSERT INTO MyTable ([ID],[Column1],[Column2]) VALUES (?,?); SELECT SCOPE_IDENTITY();";

現在我有一個表單,在該表單中,可以在 SQL 表(MyTable)中插入多於 1 行。 現在的問題是使用下面的代碼為所有插入的行提供相同的 ID。 因此,我收到一條錯誤消息,指出 ID 值重復。

我怎樣才能克服這個問題?

  1. 確保您插入的每條記錄都有時間戳
  2. 選擇最后插入的記錄。
  3. 根據 id,它可能是一個字符串,因此從字符串中獲取整數。
  4. 從獲得的字符串中加 1 以獲得增量值。
  5. 將前綴添加到遞增的整數,即 T23。
  6. 將其保存到一個變量中,並將其作為任何其他變量插入。

     //assume $dbc to be the variable referencing the database connection //fetch last id $select_last_id_sql = mysqli_query($dbc,"SELECT table_id,time_recorded FROM TableName ORDER BY time_recorded DESC LIMIT 1") or die(mysqli_error($dbc); $id_row = mysqli_fetch_array($select_last_id_sql); $id = $id_row['table_id']; $int = (int) filter_var($id, FILTER_SANITIZE_NUMBER_INT); $int = $int+1; $new_table_id = "T".$int;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM