필자는 PDO 래퍼 클래스를 사용하려고하며 일반적으로 SQL 주입에 대한 적절한 보안을 위해 우수 사례로 사용하고 있습니다. MySQL에 POST 할 양식을 채우는 데 필요한 깨끗한 기초 지식을 배우려고합니다.PDO를 올바르게 사용하여 MySQL에 POST 할 양식 만들기?
그래서 내 양식에서 데이터를 MySQL 테이블에 삽입했지만 제출 후 새로 고침시 여러 레코드를 사용하고있었습니다. 그런 다음 프로세서를 작성하는 더 깨끗한 방법을 연구했지만 지금은 테이블에 삽입하는 데 문제가 있습니다. 프로세서와 "class.db.php"파일간에 불일치가 있는지 확실하지 않은가요?
"how-to 's"를 (를) 찾지 못했습니다. 내가 뭘 잘못하고 있는지 이해하려고 노력하고, 모범 사례에 대한 답을 원합니다. 내가 본 모든 것은지도 전체에 있습니다. 참고로 내가 여기 처음 시작
http://webdevelopingcat.com/php-mysql-tutorial-for-beginners-inserting-rows-with-pdo/ 그럼 당신은 클래스 구현의 기초를 들어, https://code.google.com/p/php-pdo-wrapper-class/ 프로젝트를 구글 만약 내가 포함하고있어 문서의 상단에 : 나는 어디에 있어요 여기
입니다.
<?php
include("class.db.php");
$version = "1.0.2";
$released = "December 9, 2010";
?>
그러면 몸 안에 간단한 형태.
<?php
if (empty($_POST)){
?>
<form name='registration' action='success.php' method='POST'/>
<label for 'FName'>First Name: </label>
<input type="text" name="FName" />
<label for 'LName'>Last Name: </label>
<input type="text" name="LName" />
<label for 'Age'>Age: </label>
<input type="number" name="Age" />
<label for 'Gender'>Gender: </label>
<input type="text" name="Gender" />
<button type="submit">Submit</button>
</form>
마지막으로 양식 프로세서 또한 본문 내에 있습니다.
<?php
} else {
//process the form here
//
// Connect to database
$db = new db("mysql:host=localhost;dbname=pdodb", "root", "root");
$form = $_POST;
$first = $form[ 'FName' ];
$last = $form[ 'LName' ];
$myage = $form[ 'Age' ];
$gen = $form[ 'Gender' ];
$sql = "INSERT INTO mytable (FName, LName, Age, Gender) VALUES (:first, :last, :myage, :gen)";
$query = $db->prepare($sql);
$query->execute(array(':first'=>$first, ':last'=>$last, ':myage'=>$myage, ':gen'=>$gen));
}
?>
MANUAL way works. 양식이 success.php 때문에 삽입 코드가 성공이 있는지 확인하려면 게시되는 것을 방지-PHP-SQL 주입-와-PDO 준비된를-문
// Create array of data to insert
$insert = array(
"FName" => "John",
"LName" => "Doe",
"Age" => 26,
"Gender" => "male"
);
// Insert the array into the table
$db->insert("mytable", $insert);
이봐, 난 완전히 질문을 이해 모르겠어요. 여전히 여러 번 제출하는 데 문제가 있습니까? 그렇다면 양식과 프로세서를 다른 파일에 넣고 POST/REDIRECT/GET 메서드를 사용하는 것이 좋습니다. http://en.wikipedia.org/wiki/Post/Redirect/Get – versalle88
지금은 아닙니다. . 하지만 고맙겠습니다. 내 문제는, 그것도 데이터베이스에 삽입하지 않을 것입니다. 나는 그것을 한순간에하고 있었지만, 사용 된 코드는 끔찍했고 어수선했다. 이 접근법은 깨끗해 보이지만 POST를 만드는 데 문제가 있습니다. – JonnyBorg
"PDO 래퍼 클래스를 사용하려고합니다 ..."오 오. [Laravel] (http://laravel.com/)과 같이 현대적인 [개발 프레임 워크] (http://codegeekz.com/best-php-frameworks-for-developers/)를 사용하지 못하도록하는 것이 있습니까? 응용 프로그램을 구축하기위한 훨씬 강력한 기반을 제공합니까? – tadman