2015-01-28 3 views
-1

방금 ​​PHP와 SQL로 시작했고 제출 된 양식을 mysql 테이블에 삽입하려고했습니다. 이미 답변 된 질문에서 많은 것을 얻었지만 데이터가 테이블에 삽입되지 않고 오류가 발생하지 않는 문제가 발생했습니다. affected_rows로 확인하면 -1이되지만 내 실수는 찾을 수 없습니다.양식을 MySQL에 삽입

양식

<form method="post" action="anmeld.php"> 
<table> 
    <tr> 
     <td> 
      Familie/Name: 
     </td><td> 
      <input type="text" name="name" required> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      Wir kommen Ja&nbsp;<input type="radio" name="anwesend" value="ja" checked> 
      &nbsp;Nein&nbsp;<input type="radio" name="anwesend" value="nein"> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      Wir sind 
     </td> 
     <td><input type="number" name="adult">&nbsp;Erwachsene. 
     </td> 
    </tr> 
    <tr> 
     <td><br> Unsere Kinder sind<br> 
      Kind <br>Kind<br>Kind<br>Kind 
     </td> 
     <td><br><br> 
      <input type="number" name="child1"> Jahre alt. <br><input type="number" name="child2"> Jahre alt. <br><input type="number" name="child3"> Jahre alt. <br><input type="number" name="child4"> Jahre alt. 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <input type="submit" name="submit" value="Abschicken"> 
     </td> 
    </tr> 

</table> 

PHP

<?php 

$mysqli = new mysqli("127.0.0.1", "user", "userpw", "dbname"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_err; 
} 

if (!empty($_POST["submit"])) { 
    $familie = $_POST["name"]; 
    $anwesend = $_POST["anwesend"]; 
    $adult = $_POST["adult"]; 
    $child1 = $_POST["child1"]; 
    $child2 = $_POST["child2"]; 
    $child3 = $_POST["child3"]; 
    $child4 = $_POST["child4"]; 

    $sql = "INSERT INTO 'guests' ('id', 'familie', 'anwesend', 'adult', 'child1', 'child2', 'child3', 'child4') 
VALUES ('', '$familie', '$anwesend', '$adult', '$child1', '$child2', '$child3', '$child4')"; 

    $mysqli->query($sql); 

    printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows); 
} 
?> 

나는 단순히 간과, 정말 분명 뭔가 생각 삽입하지만 난 너희들이 나를 도울 수 있기를 바랍니다.

편집 : 예. '및'되었습니다. 이제 제대로 작동합니다. 고마워요

+0

SQL 주입 ... 준비된 문을 사용하십시오 ... – Rafael

+0

은 id 자동 증가/기본 키입니까? 그렇다면, 필드를 모두 함께 제거하고 값에서'',''를 제거하고자 할 수 있습니다. 다른 필드 중 숫자 값이 있습니까? 그렇다면 주위에 아포스트로피가 필요하지 않습니다. 또한 Prepared Statement와 직선 쿼리를 비교하여 보안을 강화하십시오. 오류가있는 경우 에코를 시도 했습니까? 오, 그리고 '손님'은 아포스트로피가 없어야합니다. –

+0

Protip 예 :'$ sql = "여기에 귀하의 SQL 문"; $ result = mysqli_query ($ sql) 또는 trigger_error ("Query Failed! SQL : $ sql - 오류 :".mysqli_error(), E_USER_ERROR); 또는 단순히'echo $ mysqli-> error;'를 실행하십시오. –

답변

0

따옴표로 묶인 잘못된 표식과 식별자를 사용하고 있습니다.

당신의 테이블 주위 시세 및 열 제거 식별자 규정에 대한 자세한 내용은

INSERT INTO guests (id, familie, anwesend, adult, child1, child2, child3, child4) 

을 문의 :

사용 echo $mysqli->error;를 조회 한 후, 어느 것 구문 오류를 신호했습니다.

+0

질문은 "너"시도한거야? –

+0

나는 그것을 시도 했습니까 ??? – Rafael

+0

lol 나는 필요 없어. 나는 그것이 실패 할 것임을 압니다. –