이전에 작동했지만 이전에 작동했던 일부를 포함하여 일부 사용자에게는 작동하지 않는 로그인 스크립트가 있습니다.SQL은 phpMyAdmin에서 작동하지만 웹 페이지 스크립트에서 잘못된 행 수를 반환합니다.
SQL은 항상 phpMyAdmin에서 작동하지만 일부 사용자의 경우 웹 페이지에서 항상 0 행을 반환합니다.
$query_str = 'SELECT id, username, level_access, active FROM users WHERE username = "';
$query_str .= mysql_real_escape_string($uname).'"';
$query_str .= ' AND password = "'.mysql_real_escape_string($pwd).'"';
echo $query_str. "<br/>";
$result = mysql_query($query_str);
$num_result = mysql_num_rows($result);
echo $num_result. "<br/>";
내가 어떤 변화를 테스트 상당한 시간을 소비하고, 내가 생각할 수있는 조합, 나는 따옴표를 다시 추가 변수 이름을 변경, 다른 변수를 삽입 식을 단순화 : 여기에 문제가있는 코드입니다. 각 변경 사항은 phpMyAdmin에서 출력 된 쿼리 문을 테스트했습니다. 다른 사용자, 삭제 된 사용자를 추가하고 다시 만들었습니다. 액세스 수준과 사용자 이름을 변경했습니다.
항상 나는 그들이 나는 다음과 같은 SQL을 생성하도록 마지막으로 내가 어디에 문을 제거 phpMyAdmin을 반환 경우에도, 항상 어떤 행을 반환하지 않는 로그인이 항상 다른 사람을 위해 작동하는 일부 사용자에 대해 같은 결과를 얻었다 성명 :내 웹 페이지에서 이것은 얼마나 많은 사용자가 있더라도 항상 8 개의 행을 반환합니다. 8, 9 또는 10 명의 사용자가있는 경우 8 개의 행을 반환합니다. 사용자가 8 명 미만이되도록 사용자를 삭제했지만 phpMyAdmin 웹 페이지에 8 개의 행이 반환되어 매번 올바른 번호가 반환됩니다.
분명히 문제는 코드가 아닌 것 같습니다. 그래서 이것은 나의 전문성 이상이다. 이 문제의 원인은 무엇이며 어떻게 해결할 수 있습니까?
PHP 코드와 phpmyadmin이 동일한 데이터베이스를 찾고 있습니까? –
데이터가 맞습니까? 때로는 하나의 잘못된 값만큼 미묘한 것이 전체 결과를 던질 수 있습니다. 또한 PhpMyAdmin _ 및 _ MySQL Work Bench와 같은 다른 DB 도구를 사용해보십시오. –