2016-09-22 2 views
0

\ 여기에 내 코드경고 : mysqli_num_rows은() 매개 변수 1 mysqli_result 할 것으로 예상, 부울 C에 주어진는 : XAMPP htdocs를 midtermProject는 signupPost.php

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE email = '$email'"); 

     if(mysqli_num_rows($res) != 0) { 
      $response = 'email already taken'; 
     } 

     $res = mysqli_query($conn, "SELECT * FROM foodtography WHERE name = '$name'"); 

     if(mysqli_num_rows($res) != 0) { 
      $response = 'Name already in use'; 
     } 

     $res = mysqli_query($conn, "SELECT * FROM foodtography WHERE username = '$uname'"); 

     if(mysqli_num_rows($res) != 0){ 
      $response = 'Username not available'; 
     } 

답변

1

거짓

을 다음과 같이 평가되므로
$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE name = '$name'"); 

아마도 귀하의 검색어에 오류가 있기 때문일 수 있습니다. $ name이 비어 있거나 유효하지 않은 문자가 있기 때문일 수 있습니다. 모두를 위해 우리는

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE email = '$email'"); 

또는

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE username = '$uname'") 

당신은 우리에게 줄 번호를 말하지 않았다에서 오류가 실제로 올 수 있습니다 알고 있습니다. mysqli와 같이 사용하면 안된다. 이러한 종류의 오류를 피하고 SQL 삽입을 피하기 위해 준비된 명령문과 바인드 매개 변수를 사용해야합니다.

+0

준비된 진술 문 부분에 대한 명성 * 또한 질문에 대답하는 동안. +! –

+0

@ JefréN. 내 경험에 비추어 볼 때, 일부 기술 만 언급해도 그다지 효과가 없습니다. 사람들은 설교가 아닌 모범을 신뢰하는 경향이 있습니다. 결과적으로이 쿼리는 여전히 이러한 오류가 발생하기 쉽기 때문에 질문에 답하지 않습니다. –

+0

@ YouCommonSense : 네 말이 맞아. 이 질문에 실제로 대답하지 않는다는 것은 내 마음을 가로막 지 않았다. 그것은 문제의 원인을 지적한다. (예.'$ res === false') 그래서 나는 그것을지지했다. 그곳에. 그게 그거야. :) (그건 그렇고, 그것은 당신이 'PDO'에 가지고있는 멋진 기사입니다.) –

관련 문제