2016-03-01 3 views
0

У меня есть MYSQL DATABASE со столом для мероприятий с идентификатором, который установлен на AUTO INCREMENT.AUTO INCREMENT пропускает число каждый раз

Я заметил, что автоматически увеличивающиеся значения первичного ключа для действий увеличиваются на 2 вместо 1, когда я использую свой php webservice. Когда я пытаюсь это сделать в phpmyAdmin, он отлично работает.

Вот мой PHP вебсервис:

<?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"); 
} 
?> 

Я не знаю, что я сделал неправильно ..

EDIT 1:

Data Structure (It is in German)

EDIT 2:

ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ:

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

Это не должно быть критическим в любом случае, автоинкремент заключается в попытке дать вам уникальное значение id, не обязательно последовательные значения id; и ваш код никогда не должен зависеть от конкретного идентификатора ids –

ответ

0

Хорошо, я исправил его, проблема была в коде C#. Прежде чем отправлять данные в веб-службу, я проверяю, доступен ли 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; 
     } 
    }