2014-11-08 5 views
0

사용자 정의 필드가 2 개인 양식이 있습니다.긴 텍스트 항목이 MySQL에 삽입되지 않음

if (!empty ($_POST)) { 
    $location_id = $_POST['restaurant_id']; 
    $content = $_POST['content']; 
    $query = "INSERT INTO restaurant_reviews 
       (location_id, text1, review_date) 
       VALUES 
       ('$location_id', '$content', NOW())"; 
    $execute = mysqli_query($dbc, $query); 
    print_r($_POST); 
} 

이 문제는 텍스트도 매우 적은 양이 제출되어있다 : 하나는 다른 하나는 제출에서 MySQL에 저장되는 텍스트 입력 긴 양에 TinyMCE에 사용, 수치 ID를 입력 할 수있는 텍스트 필드 양식 (소량으로 최대 2/3 일반 단락을 의미 함)은 MySQL에서 레코드가 생성되지 않습니다. 양식은 tinyMCE 필드에 몇 단어의 텍스트로 매회 성공적으로 제출됩니다.

양식에 제출 된 텍스트의 양과 관계없이 print_r 함수에 의해 출력 될 때 모두 포스트 배열에 나타나며 단지 DB까지 도달하지 않습니다. text1 열은 longtext 유형이므로 문제가 아닌지 확인하십시오. 어떤 아이디어?

+1

뭘 게시 된 내용에있는 따옴표 문자가 있다면 일이 기대할 수있는 SQL 문을 방해 할 수있는 문자를 탈출

$connection = mysqli_connect("database_host", "username", "password", "database_name"); $id = (int)mysqli_real_escape_string($connection, $_POST['restaurant_id']); $content = mysqli_real_escape_string($connection, $_POST['content']); 

를 사용하는 것이 좋습니다? –

+1

당신의 코드는 SQL 인젝션에 대해 열려 있습니다! 준비된 진술의 이점과 그 진술을 어떻게 도울 수 있는지 읽어보십시오. – arkascha

+2

작은 따옴표로 인해 쿼리가 중단되지 않도록 코드가 입력을 이스케이프 처리하지 않습니다. – chiliNUT

답변

0

난 당신이

+0

바인드 변수를 사용하는 것이 좋습니다. –

관련 문제