2017-10-14 1 views
1

의견 게시판을 만들려고합니다. 여기 내 표는 enter image description herePHP로 MySQL에 텍스트를 업로드 할 수 없습니다

나는 기본 키 및 자동 증가로 guestID을 설정,하지만 난 입력에 PHP에 의해 새로운 게스트 이름을하려고 할 때마다, 그것은 단지 새로운 ID를 가진 새 열을 만들 수 phpMyAdmin을 에 의해 생성된다 그러나 이름없이. 당신은 쿼리에 변수의 값을 대체하지 않을

<?php 
mysql_connect("localhost","root","root"); 
mysql_select_db("guest"); 
mysql_query("set names utf8"); 

$guestName=$_POST['guestName']; 


mysql_query("insert into guest value(`guestID`, `guestName`)"); 


?> 
<!DOCTYPE html> 


<body> 
<div class="container"> 
<div class="top"> 
<h3>New comment</h3> 
</div> 
<form id="form1" name="form1" method="post" action="" class="form-horizontal"> 
    <div class="form-group"> 
     <label for="guestName" class="col-sm-4 control-label">Name:</label> 
     <div class="col-sm-6"> 
      <input type="text" class="form-control" placeholder="guestName" name="guestName" id="guestName" /> 
     </div> 


    <div class="button"> 
     <input type="submit" name="button" id="button" value="send" class="btn"/> 
    </div> 
</form> 

답변

0

: enter image description here

여기 내 코드입니다. 값 목록 앞에있는 키워드는 value이 아니라 values입니다.

$guestName = mysql_real_escape_string($_POST['guestName']); 

mysql_query("insert into guest (guestName) values ('$guestName')"); 

그리고 역 따옴표가 아닌 문자열을 작은 따옴표로 묶어야합니다. When to use single quotes, double quotes, and backticks in MySQL

mysqli 또는 PDO으로 업그레이드하고 더 이상 사용되지 않는 mysql 확장명 대신 준비된 문을 사용해야합니다. 그러나 mysql을 사용하는 경우 SQL 삽입을 방지하기 위해 사용자 입력을 피해야합니다.

+0

그 작품! 정말 고맙습니다. –

0

guestID 필드에 기본 키와 자동 증가를 설정 했으므로 새 행을 삽입 할 때 자동으로 증가 값을 가져 오기 때문에 삽입 쿼리에 사용하지 마십시오. 그리고 다른 실수는 칼럼 이름을 전달하지 않았다는 것입니다. 위에서 언급 한 쿼리에서

$guestName=$_POST['guestName']; 


mysql_query("insert into guest (guestName) value(".$guestName.") "); 

먼저 열 이름입니다, 두 개의 괄호가 있음을 발견하고, 같은 순서로 당신은 값 '브래킷을 작성해야합니다.

+0

고맙습니다. –

+0

Backticks가 잘못되었습니다. 기꺼이 도와 드리겠습니다. https://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql – Barmar

+0

@seamaszhou. 대답을 수락 할 수 있습니다. –

관련 문제