양식을 통해 전달 된 데이터의 유효성을 검사 한 사용자 클래스를 만든 다음 데이터베이스 테이블 사용자를 업데이트합니다. 사용자 이름과 전자 메일이 테이블에 있는지 확인하는 등의 추가 기능을 추가하고 싶지만 약간의 스크립트를 추가했지만 작동하지 않는 것 같습니다. 데이터베이스에 사용자가 있는지 확인하십시오.
나는 중복 된 이메일 주소를 삽입 나는 오류 메시지를하지 않았다 "이메일이 존재"대신 내가 "1 행 삽입"성공 메시지를 얻을 :내가 아래에 뭔가 잘못하고 오전? 아마도 이것에 접근하는 더 좋은 방법이 있을까요?
public function insert() {
if (isset($_POST['submit'])) {
$email = isset($_POST['email']) ? $this->mysqli->real_escape_string($_POST['email']) : '';
$result = $this->mysqli->prepare("SELECT * FROM users WHERE email='".$email."'");
if ($result->num_rows) {
echo "email exisits!";
}
else
{
$stmt = $this->mysqli->prepare("INSERT INTO users (username, password, name, email) VALUES (?, ?, ?, ?)");
$stmt->bind_param('ssss', $username, $password, $name, $email); // bind strings to the paramater
//escape the POST data for added protection
$username = isset($_POST['username']) ? $this->mysqli->real_escape_string($_POST['username']) : '';
$cryptedPassword = crypt($_POST['password']);
$password = $this->mysqli->real_escape_string($cryptedPassword);
$name = isset($_POST['name']) ? $this->mysqli->real_escape_string($_POST['name']) : '';
$email = isset($_POST['email']) ? $this->mysqli->real_escape_string($_POST['email']) : '';
/* execute prepared statement */
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
}
될 것이다. –
사용 /* execute query */ $ result-> execute(); /* 결과 저장 */ $ result-> store_result(); 그리고 나서 $ result-> num_rows()를 사용하십시오. –
당신의 코드가 부 풀리거나 잘못되었습니다. –