2016-03-01 70 views
0

我有一個MYSQL DATABASE帶有一個ID設置爲AUTO INCREMENT的活動表。自動增量每次跳過一個數字

我注意到,當我使用我的php webservice時,活動的自動遞增主鍵值正在遞增2而不是1。當我在phpmyAdmin嘗試它時,它工作正常。

這裏是我的PHP Web服務:

<?php 
include("wt_dbconnection.php"); 

$json = $_POST["Json1"]; 

$jsondata = json_decode($dson,true); 

$Beginningtime=$jsondata['Beginningtime']; 
$Endtime =$jsondata['Endtime']; 

$sql = "insert into Activities(Beginningtime,Endtime) 
values('$Beginningtime', '$Endtime')"; 

if(!mysqli_query($con,$sql)) 
{ 
    echo ("error"); 
} 
else 
{ 
echo ("done"); 
} 
?> 

我不知道我做錯了..

編輯1:

Data Structure (It is in German)

編輯2:

SHOW CREATE TABLE:

CREATE TABLE `Activities` (
`ID` int(11) NOT NULL AUTO_INCREMENT, 
`Beginningtime` date NOT NULL, 
`Endtime` date DEFAULT NULL, 
PRIMARY KEY (`ID`) 
) ENGINE=InnoDB AUTO_INCREMENT=428 DEFAULT CHARSET=utf8 
+0

你有(或曾在過去)在MySQL的複製?這是典型的避免主 - 主環境中自動增量值的衝突。請發佈或檢查您的數據結構。 – peixotorms

+1

你可以在你的問題中包含表格模式嗎? –

+3

這不應該是任何關鍵,autoincrement是關於試圖給你一個唯一的id值,不一定是連續的id值;並且你的代碼應該永遠不依賴於特定的ids模式 –

回答

0

好吧我修正了它,問題出在c#代碼中。在我發送數據到webservice之前,我檢查url是否可到達,這是問題所在。

這裏的代碼:

 public static bool urlisreachable(System.Uri url) 
    { 
     WebRequest request = WebRequest.Create(url); 
     request.Timeout = 15000; 
     request.Method = "HEAD"; 
     try 
     { 
      using (WebResponse response = request.GetResponse()) 
      { 
       return true; 
      } 
     } 
     catch (WebException) 
     { 
      return false; 
     } 
    }