2012-06-24 6 views
0

왜 삽입 문이 작동하지 않는지 궁금합니다. 데이터베이스에 표시된 레코드가 없으며 오류를 표시하지 않습니다. 여기에 코드mysqli에서 데이터 삽입이 작동하지 않습니다.

<?php 
    if(isset($_POST['submit'])){ 
     $username = trim($_POST['username']); 
     $password = trim($_POST['password']); 
     $conf_pass = trim($_POST['conf_password']); 
     $email = trim($_POST['email']); 
     require_once('./includes/Db/CheckPassword.php'); 
     $check_pwd = new Db_CheckPassword($password); 
     $passwordOK =$check_pwd->check(); 
     $password_match = Db_CheckPassword::confirmPassword($password,$conf_pass); 
     require_once('./includes/Db/CheckUsername.php'); 
     $check_user = new Db_CheckUsername($username,$conn); 
     $userOK = $check_user->check(); 

     if($userOK && $passwordOK && $password_match){ 
      $hashedpass = crypt($password); 

      $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')"; 
      $conn->query($sql); 
     }else{ 
      $pass_error = $check_pwd -> getErrors(); 
      $user_error = $check_user->getErrors(); 
     } 
    } 
?> 

내가 역 따옴표로 열 이름을 둘러싼 작은 따옴표를 식별자 인용 문자는 백틱입니다 MySQL의에서

if($userOK && $passwordOK && $password_match){ 
       $hashedpass = crypt($password); 

       $sql = "INSERT INTO accounts ('username','password','email') VALUES('{$username}','{$hashedpass}','{$email}')"; 
       $conn->query($sql); 
+0

try echo $ sql; 결과를 db에 복사하여 붙여 넣으면 문제를 알게 될 것입니다. – meWantToLearn

+1

지금 [PDO] (http://www.php.net/pdo)로 이동해야합니다. mysql_와 mysqli_는 오래된 기술이다. –

+0

한눈에 아무 것도 볼 수 없습니다. 널 (null)이 아닌 다른 열이 테이블에 있습니까? – Fluffeh

답변

1

데이터베이스에 레코드를 삽입, 그래서 대체하는 곳입니다 :

$sql = "INSERT INTO accounts (`username`,`password`,`email`)  
        VALUES('{$username}','{$hashedpass}','{$email}')"; 
관련 문제