2014-02-28 7 views
0

데이터베이스에서 행의 ID 열을 자동으로 설정해야하며 그 방법을 알아내는 데 도움이 필요합니다. 지금은 할당해야하기 때문에 입력 필드를 통해 ID행의 ID 열을 자동으로 할당하는 방법

PHP

<?php 
    //include db configuration file 
    include 'connection.php'; 
    function user_joined($user_id, $user_name, $user_age, $user_end){ 
     $user_id = mysql_real_escape_string(htmlentities($user_id)); 
     $q = "INSERT INTO evenement (id, title, start, end) VALUES 
       ('" . $user_id . "', '" . $user_name . "', '" . $user_age . "', '" . $user_end . "')"; 
     mysql_query($q); 
     echo $user_id; 
    } 

    if(isset($_POST['user_id'], $_POST['user_name'], $_POST['user_age'], $_POST['user_end'], $_POST['action'])){ 
     $user_id = $_POST['user_id']; 
     $user_name = $_POST['user_name']; 
     $user_age = $_POST['user_age']; 
     $user_end = $_POST['user_end']; 
     $action = $_POST['action']; 
     if ($action == 'joined'){ 
      user_joined($user_id, $user_name, $user_age, $user_end); 
     } 
    } 
?> 

HTML 양식

<form class="form-inline"> 
    <div id="d1" title="Maak afspraak aan" style="display: none"> 
     <div class="control-group"> 
      <label class="control-label">Gebruikers id:</label> 
      <div class="controls"> 
       <input type="text" name="userid" placeholder="Gebruikers ID" id="id" /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label">Title:</label> 
       <div class="controls"> 
        <input type="text" name="username" placeholder="Titel" id="name" /> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label class="control-label">Starttijd:</label> 
       <div class="controls"> 
        <input type="text" name="userstart" placeholder="Starttijd" id="start" /> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label class="control-label">Eindtijd:</label> 
       <div class="controls"> 
        <input type="text" name="userend" placeholder="Eindtijd" id="end" /> 
       </div> 
      </div> 
     </div> 
    </div> 
</form> 

답변

2

를 사용하여 자동으로 ID를 설정하는 PRIMARY KEY와 조합 AUTO_INCREMENT 속성. SCOPE_IDENTITY()으로이 ID를 반환하거나 더 나은 PHP SQL 옵션으로 전환하는 경우 PDO::lastInsertID을 사용하여 최신 ID를 가져올 수 있습니다.

또한 준비된 문을 사용하여 수정할 수있는 매우 심각한 SQL 주입 문제가 있음을 경고하고 싶습니다. 일반적으로 preg_replace을 사용하면 쿼리 및 테이블의 원치 않는 문자를 모두 제거 할 수 있습니다. SQL 인젝션 방지에 대해 조금 더 배우십시오. 이 주제에 최선을 다하고 있습니다 여기에 큰 주제는 내가 당신에게이 기사의 목록을 만든 :

나는 또한 당신이로 전환을 참조하고 싶습니다 현재 deprecated MySQL database extension을 사용 중이므로 MySQLi 또는 PHP PDO입니다.

관련 문제