2014-04-11 3 views
0

안녕하십니까. 다음 INSERT INTO 문을 실행할 때 다음 오류가 발생했습니다.SQL 구문 오류 - 문에 삽입

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , ,)' at line 2

전적으로 엉망입니다. 이것은 'id'라고 불리는 내 테이블에있는 증분 값과 관련이 있을까요? 여기에 코드가 있습니다. 미리 감사드립니다 !!

<?php 
$con=mysqli_connect("localhost","root","root","wexdemo"); 

if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 


$name = mysqli_real_escape_string($_POST['name']); 
$address = mysqli_real_escape_string($_POST['address']); 
$area = mysqli_real_escape_string($_POST['area']); 
$postcode = mysqli_real_escape_string($_POST['postcode']); 
$sector = mysqli_real_escape_string($_POST['sector']); 
$subsector = mysqli_real_escape_string($_POST['subsector']); 
$contact = mysqli_real_escape_string($_POST['contact']); 
$position = mysqli_real_escape_string($_POST['position']); 
$email = mysqli_real_escape_string($_POST['email']); 
$telephone = mysqli_real_escape_string($_POST['telephone']); 

$sql="INSERT INTO employers (name, address, area, postcode, sector, subsector, contact, position, email, telephone) 
VALUES ($name, $address, $area, $postcode, $sector, $subsector, $contact, $position, $email, $telephone)"; 

if (!mysqli_query($con,$sql)) 
{ 
    die('Error: ' . mysqli_error($con)); 
} 
echo "1 record added"; 

mysqli_close($con); 
?> 
+0

코드를 디버깅하려고 $telephone, 당신은 단순히 인쇄 할 수 있습니다 즉, 당신의 쿼리 및 실행중인 실제 쿼리가 무엇인지 확인 –

+0

준비된 문에 대해 배울 수 있습니다. 정말 영리합니다! –

+0

@PhilHowell : [*'mysqli_prepare' *] (https://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.prepare.html)로 작업한다면 * best * 일 것입니다. –

답변

1

삽입 쿼리 ' 작은 따옴표 또는 " 따옴표 안에 포장되어야한다. 대신

$sql="INSERT INTO employers (name, address, area, postcode, sector, subsector, contact, position, email, telephone) 
VALUES ($name, $address, $area, $postcode, $sector, $subsector, $contact, $position, $email, $telephone)"; 
+0

안녕하세요 Krish, 오류 메시지를 없애고 있지만 데이터가 테이블에 올바르게 삽입되지 않은 작은 따옴표를 추가했습니다. 자동 증분 "id"열은 각 행에 나타나는 유일한 데이터입니다 ... –

+0

테이블 구조를 게시 할 수 있습니까? –

+0

@PhilHowell :'mysqli_query'를 호출하기 전에'echo $ sql;'으로 디버그하십시오. 적절한 데이터가 데이터베이스로 전송되는지 여부를 알 수 있습니다. –

1

당신이 그들의 열 유형이 문자열 인 경우, 작은 따옴표 나 큰 따옴표에있을 필요를 삽입하고 값은의

$sql ="INSERT INTO employers (`name`, `address`, `area`, `postcode`, `sector`, `subsector`, `contact`, `position`, `email`, `telephone`) 
VALUES ('$name', '$address', '$area', '$postcode', '$sector', '$subsector', 
     ..^ 
'$contact', '$position', '$email', '$telephone')"; 

. 이 코드를보십시오 :

$sql="INSERT INTO employers (name, address, area, postcode, sector, subsector, contact, position, email, telephone) 
VALUES ('$name', '$address', '$area', '$postcode', '$sector', '$subsector', '$contact', '$position', '$email', '$telephone')"; 

당신은 아마 인용 부호를 원하지 않는 유일한 값은 숫자 값이있는 사람들이다 - 아마 $postcode 항상