2014-03-03 2 views
0

3 번째 테이블에 스태프를 삽입하는 데 문제가 있습니다.Mysql 준비된 문이 작동하지 않음

표 첫 번째는 first_id, test_name을 포함합니다. | 테이블 초에 second_id, test_second가 포함됩니다. | 표는 첫 번째는 first_id, second_id,는 (null도 가능)주의에 phpMyAdmin에서

$first_id = 1; 
$second_id = 3; 

$stmt = $this->conn->prepare("INSERT INTO first-second (first_id, second_id) values (?, ?)"); 
$stmt->bind_param("ii", $first_id, $second_id); 
$result_insert = $stmt->execute(); 
$stmt->close(); 

내가 삽입을 할 수 있지만, 왜 stmt를 doesn'work와 나도 몰라 포함되어 있습니다.

감사합니다.

+0

제거 시도'$의 result_insert ='당신이 후 그 변수를 호출하지 않을입니다. –

답변

1

, 그것은 좋은 방법이 아니다. 어쨌든 테이블의 이름 사이에 역 따옴표를 넣는 것만으로 문제를 해결할 수 있습니다. 이 같은

뭔가 :

"INSERT INTO `table-mame` WHERE ... 
0

은 테이블 이름 주위에 역 따옴표를 추가

$stmt = $this->conn->prepare("INSERT INTO `first-second` (first_id, second_id) values (?, ?)"); 

그것은 그래도 좋습니다는, 테이블 이름에 "이상한"문자를 사용하지.

+0

나는 하이픈에 대한 느낌이 있었고, 나는 100 % 확신하지 못했습니다. 나는 하이픈을 사용하지 않는다. 어딘가에. –

0

텍스트 상자/텍스트 영역 또는 데이터를 데이터베이스에 삽입하기위한 입력을 요청하는 다른 유형을 사용한다고 가정합니다. 입력에 특수 문자가있어 쿼리가 실패 할 수 있습니다. 검색어 삽입 전에 mysqli_real_escape_string을 사용해보세요. 그런데

$input1=mysqli_real_escape_string($_POST['input1']); 
$input2=mysqli_real_escape_string($_POST['input2']); 
$input3=mysqli_real_escape_string($_POST['input3']); 

mysqli_query($conn,"INSERT INTO first-second (first_id, second_id, note) VALUES ('$input1','$input2','$input3')"); 

, 그것은 테이블 이름에 하이픈을 사용하는 것이 괜찮습니다,하지만 추천하지 :
Can a table field contain a hyphen?

0
$first_id = 1; 
$second_id = 3; 

$stmt = $this->conn->prepare("INSERT INTO first-second (first_id, second_id) values (:f1, :f2)"); 
$result_insert = $stmt->execute(array('f1'=>$first_id , 'f2'=>$second_id)); 
$stmt->close(); 

희망이 도움이됩니다. 내가 대시로 테이블 이름을 정의하는 피할 것이다

감사

관련 문제