2014-10-30 8 views
0

mysql 데이터베이스에 일부 정보를 삽입하는 스크립트를 만들었습니다. 여관에 값을 입력하면 prod_id 필드에 '2147483647' 필드가 삽입됩니다. 데이터가 다른 모든 필드에 올바르게 삽입되고 있습니다. 오류의 원인을 제시해주십시오.MySQL의 PHP 삽입 쿼리가 제대로 작동하지 않습니다.

<form method="post" name="new_prod" action="new_prod.php"> 
       <div class="form-group"> 
        <input type="text" name="prod_id" class="form-control" placeholder="Enter Product ID" > 
       </div> 
       <div class="form-group"> 
        <input type="text" name="prod_name" class="form-control" placeholder="Enter Product Details" > 
       </div> 
       <div class="form-group"> 
        <input type="text" name="prod_price" class="form-control" placeholder="Enter Product price" > 
       </div> 
       <button type="submit" class="btn btn-default" name="sub">Add Product</button> 
      </form> 
     </div> 
    </div> 
</body> 
</html> 
<?php 
$link=mysqli_connect("localhost","root","","smartcart"); 
if(isset($_POST['sub'])) 
{ 
    $prod_id=$_POST['prod_id']; 
    $prod_name=$_POST['prod_name']; 
    $prod_price=$_POST['prod_price']; 
    $a="INSERT into products (prod_id, prod_name, prod_price) VALUES ('$prod_id', '$prod_name', '$prod_price')"; 
    if (mysqli_query($link,$a)) 
     { 
      echo "Product successfully added to the database"; 
     } 
    else 
    { 
     $error=mysqli_error($link); 
     echo "Product addition failed. Please contact the developer if problem persists.".$error; 
    } 
    mysqli_close($link); 
} 
+0

'2147483647' 또는'2147483647 '이 삽입 되나요? 게다가, 당신은 그 폼 필드에 "당신"을 삽입하고 있습니까? mysqli_query()에'die or mysqli_error ($ link)'를 추가하여 에러가 있는지 확인하십시오. –

+0

테이블 구조를 보여주십시오. 또한,'mysqli_real_escape_string'을 사용하여 SQL 삽입을 피하십시오. – vaso123

+0

데이터베이스 구조 게시를 시도했지만 이미지 (낮은 평판)를 게시 할 수 없습니다. Nevrethless, 아래 @ Finciuc의 대답은 작동합니다. – user3736335

답변

1

2147483647는 MySQL의에서 정수의 최대 값입니다 다음은 관련 코드입니다. prod_id의 형식을 int에서 bigint로 변경하면됩니다.

+0

감사합니다. 이것은 효과가 있었다. – user3736335

관련 문제