2013-10-14 5 views
1

사용자의 이메일 주소로 비밀번호 찾기 링크를 보내려는 스크립트 작업 중입니다. 나는 "recoveryemails_enc"라는 테이블을 만들었는데,이 테이블은 사용자 이메일 주소, 키 및 임시 직원을 보유하게됩니다. 사용자의 이메일 주소는 내 "사용자"테이블에서 가져옵니다. 스크립트를 실행하면 키와 만료 날짜가 포함 된 적절한 링크가 생성되지만 데이터는 데이터베이스에 삽입되지 않습니다. 여기에 내 코드가있다. 내가 뭘 잘못하고 있는지 모르겠다.SQL 테이블에 데이터를 삽입 할 수 없습니다.

CREATE TABLE IF NOT EXISTS `recoveryemails_enc` ( 

ID BIGINT (20) 부호 ZEROFILL NOT NULL AUTO_INCREMENT,
email BIGINT (20) NULL NOT,
Key VARCHAR (32 :

$result = mysql_query("SELECT email from users WHERE email = '$email' AND active='1'") or die(mysql_error());  
    $expFormat = mktime(date("H"), date("i"), date("s"), date("m") , date("d")+3, date("Y")); 
    $expDate = date("Y-m-d H:i:s",$expFormat); 
    $key = md5($email . rand(0,10000) .$expDate);      
    $no_of_rows = mysql_num_rows($result);      
    if ($no_of_rows > 0) { 
     $result = mysql_fetch_array($result);  
     $query = mysql_query("INSERT INTO recoveryemails_enc(email, Key, expDate) VALUES('$email', '$key', '$expDate')"); 
     $passwordLink = "<a href=\"?a=recover&email=" . $key . "&u=" . urlencode(base64_encode($email)) . "\">http://www.mywebsite.com/forgotpw.php?a=recover&email=" . $key . "&u=" . urlencode(base64_encode($email)) . "</a>"; 

편집 명령을 내 테이블을 만드는 데 사용) NULL이 아닌
expDate datetime NOT NULL,
PRIMARY KEY (ID)
) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1;

+0

왜 데이터를 삽입하는 PHP 스크립트입니다 데이터베이스에 안드로이드로 태그? –

+3

쿼리를 직접 실행하려고 했습니까? –

+1

테이블 스키마를 제공 할 수 있습니까? 열 이름/오타가 일치하지 않으면 삽입을 막을 수 있습니다. 오류보고가 해제되어 있으면 유용한 메시지가 표시되지 않습니다. –

답변

3

문제는 쿼리 자체 내에 있습니다.

$query = mysql_query("INSERT INTO recoveryemails_enc(email, Key, expDate) VALUES('$email', '$key', '$expDate')"); 

키가 보호 된 단어

대신

$query = mysql_query("INSERT INTO recoveryemails_enc(`email`, `Key`, `expDate`) VALUES('$email', '$key', '$expDate')"); 
+0

하하 감사합니다. dbh. 나는 바보, 전 잘못된 인용문을 사용하고있었습니다. 코드를 직접 복사했을 때 효과가있었습니다. – Carbongixxer

0

문제는 MySQL의 쿼리 함께이 쿼리를 시도하고,이 시도 :

$query = mysql_query("INSERT INTO recoveryemails_enc(`email`, `Key`, `expDate`) VALUES('".$email."', '".$key."', '".$expDate."')"); 
관련 문제