2012-11-15 4 views
1

여기에 처음으로 포스터가 있습니다. 나는 php와 mysqli를 사용하여 등록 양식을 만들고, 모든 것이 실제 삽입 기능까지 잘 작동한다.mysqli 함수가 true 또는 false를 반환하지 않음.

나는 두 번 확인하고 트리플 쿼리에서 변수 이름을 확인했습니다, 그들은 올바른지, 양식 입력뿐만 아니라 기능에 도달하지만, £ this-> connect-> query ($) 쿼리) 작업을 거부합니다. 나는 실제 쿼리를 실행하기 위해 무수히 다양한 방법을 시도했으며, 각각은 false를 리턴했다. 나는 나의 지혜 끝에 여기있다, 희망을 갖고 누군가 도와 줄 수있다!

function insertNewRecord($fname, $lname, $pass, $email, $mob, $school, $location, $connumb) 
{ 
    $query = "INSERT INTO 'dbusers' 
     (firstName, lastName, password, emailaddress, mobnumb, school, campus, connumb) 
VALUES ($fname, $lname, $pass, $email, $mob, $school, $location, $connumb)"; 
    if(!$this->connection->query($query)) { 
     echo $query; 
    } 
} 

편집 : 알아 냈습니다. 테이블에서 사용자 ID를 auto_increment하는 것을 잊었습니다. 나는 몇 시간 동안 이것에 붙어 있었고, 나는 그런 바보 같은 느낌. 시간에 대한

감사


+1

mysqli_error()를 사용하여 아무 것도보고하지 않았습니까? – RonaldBarzell

+4

'password'는 MySQL의 키워드이기 때문에 질의는 에러없이 실행되지 않을 것입니다. 그래서 이것을'' "(backticks)로 캡슐화해야하기 때문에 문자열과 데이터 값을 작은 따옴표 나 큰 따옴표로 묶어야합니다. –

+2

추가적으로 $ 값은 " '"이어야합니다. 그렇지 않으면 필드 이름으로 해석됩니다 (공백이 있으면 오류가 발생합니다) –

답변

1

다음과 같은 형태로 검색어를 사용해보십시오 :

$query = "INSERT INTO `dbusers` 
     (`firstName`, `lastName`, `password`, `emailaddress`, `mobnumb`, `school`, `campus`, `connumb`) 
VALUES ('$fname','$lname', '$pass', '$email', '$mob', '$school', '$location', '$connumb')"; 

하지만, 당신은 SQL 주입을 방지하기 위해 준비된 문을 사용한다 갈 수있는 올바른 방법이 아니다 . the manual

+0

그냥 시도했지만 불행히도 작동하지 않았습니다. 답변 해 주셔서 감사합니다. :) – ZeCheeseKing

+0

어떤 오류가 있었습니까? –

+0

똑바로 응답하지 않았습니다. 제출 버튼을 클릭하면 삽입 기능이 true로 반환되지 않기 때문에 페이지가 깜박이지만 나중에 올바른 페이지로 이동하지 않습니다. – ZeCheeseKing

관련 문제