2011-05-14 2 views
0

이 스크립트는 텍스트 영역의 내용을 가져 와서 mysql에 제출하기로되어 있지만, 왜 그 이유를 볼 수 있습니까?왜이 PHP 스크립트는 양식 데이터를 mysql에 제출하지 않겠습니까?

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
$error = ''; 
$like = mysql_real_escape_string($_POST['like_box']); 

mysql_query("INSERT INTO likes (like) VALUES ($like)"); 

$id = mysql_query("SELECT id FROM likes WHERE like=$like"); 
header('Location:like.php?id='.$id.''); 
}?> 



<form method="post" action="post.php"> 
       <textarea name="like_box" id="like_box" style="border-style: none; border-color: inherit; border-width: 0; width: 458px; height: 65px" class="style11120"></textarea> 

      <tr> 
       <td style="height: 53px"> 
       <div class="style11116" style="width: 417px"> 
        <input name="Submit" type="submit" value="submit" /> 
        </form> 
+0

post.php 파일에서 디버깅을 시도 했습니까? echo $ _POST [ 'like_box']; 죽는다. "그곳에서 일하니? – Jaanus

+0

스크립트에서 데이터베이스에 연결하고 선택 하시겠습니까? – Avitus

답변

2

일부 오류보고 당신이 $like 주위에 '필요하고 삽입 내부 like is a reserved word 때문에, 주위의 열 섹션에서처럼`필요가 있다고 말할 것입니다 가졌어요.

작동해야합니다.


또한 당신의 등을 묶어야 할 필요가`선택에 대한 :

$id = mysql_query("SELECT id FROM likes WHERE `like`=$like") or trigger_error('Query Failed: ' . mysql_error()); 
2

첫 번째 SQL 쿼리가 잘못되었습니다. SQL에 문자열 값을 따옴표로 묶어야합니다.

mysql_query("INSERT INTO likes (`like`) VALUES ('$like')"); 

나머지 PHP 부분도 원하는대로 수행되지 않습니다. $ id는 결과가 아닌 값이됩니다.

$result = mysql_query("SELECT id FROM likes WHERE `like`='$like'"); 
$row = mysql_fetch_assoc($result); 
$id = $row['id']; 

또는 더 나은, 그냥 mysql_insert_id에 전화와 두 번째 SQL 쿼리를 대체 : 개선을위한

$id = mysql_insert_id(); 
여전히

더 많은 가능성이 같은 행을 인출해야합니다 :

  • 당신이 header('Location: ...'); 호출을 수행 한 후, exit를 호출하는 것을 잊지 마십시오, 그렇지 않으면 당신은 ma에 스크립트가 계속 실행되므로 예기치 않은 결과가 발생합니다.
  • 삽입물의 오류 처리를 추가하십시오. 적어도 성공했다는 if 문으로 확인하십시오.
+0

아무도 그것을 upvoting 때문에 나는 할 것이다. 좋은 정보. –

관련 문제