MySQL 4.1 DB에 양식 데이터를 삽입하려고합니다. 내가 겪고있는 문제는 공백을 포함하는 양식 필드가 삽입 전에 잘 렸습니다. POST 변수는 완료, 공백 및 모두입니다. 그냥 어딘가에서 끊어진다. 예를 들어, "South Lake Tahoe"는 단순히 "South"로 삽입됩니다. 우편 번호와 대시가있는 전화 번호도 좋습니다. 제가 작업하고있는 사이트는 Yahoo Small Business에서 호스팅하고 있으며, 여전히 MySQL 4.1을 사용하고 있습니다. 그게 문제인지는 모르겠지만 MySQL 5 이상에서는 문제가 발생하지 않았다. 사용자가 새 멤버를 추가하기 위해 양식을 채 웁니다.mysql에 공백이있는 양식 값 삽입 4.1
$k = array();
$v = array();
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$result = mysql_query("SELECT * FROM members WHERE first_name='$first_name' AND last_name='$last_name'");
if(mysql_num_rows($result)>0){
mysql_free_result($result);
exit("Duplicate User in Database");
}
mysql_free_result($result);
array_pop($_POST);//Don't need the Submit value
foreach($_POST as $key=>$value){
array_push($k, "$key");
array_push($v, "$value");
}
$fields = implode(", ", $k);
$values = array();
foreach($v as $key=>$value){
array_push($values, '"'.$value.'"');
}
$values_string = implode(", ", $values);
$result = mysql_query("INSERT INTO members($fields) VALUES($values_string)");
내가이 일을 더 나은 방법이 확신 해요,하지만 난 길 학습 곡선에 여전히 해요 : 제출하면, 폼 데이터 처리를 위해 다른 페이지에 게시됩니다. 제 생각에 명백한 결함을 지적하십시오. 모든 의견을 크게 환영합니다.
EDIT : MySQL의 필드 유형이 정확하고 충분히 길다. 예를 들어, City 필드는 VARCHAR (30)로 설정됩니다.
덕분에 많이 마크
왜 위험스럽게 오래된 MySQL 버전을 사용하고 있습니까? –
나는 완전한 대답을 모른다. 디버깅에서 앞으로 나아가려면 INSERT 명령문의 내용을 출력하여 실제로 원하는 것을 확인해보십시오 :'echo "INSERT INTO members ($ fields) VALUES ($ values_string)";' – Mansour
일부는 이 코드가 SQL 인젝션에 대해 언제든지 게시 할 수 있습니다. 오 그곳에는 :-) –