2016-08-09 2 views
-2

정확하다는 문의가 있었지만 잘못되었습니다. 그리고 나는 그 문제를 일으킬 수있는 것에 대해 상실감을 느낀다고 말했다. 여기에 내 PHP 스크립트입니다.선택 검색어에 문제가 발생했습니다.

$con = mysqli_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_DATABASE); 
if(!$con){ 
echo "Connection Error...".mysqli_connect_error(); 
} 
else 
{ 
echo "Database connection Success..."; 
} 

$user_name = $_POST["login_name"]; 
$user_pass = $_POST["login_pass"]; 

$sql_query = "SELECT name from user_info where user_name like '$user_name' 
and user_pass like '$user_pass'"; 
$result = mysqli_query($con,$sql_query); 

if(mysqli_num_rows($result)>0) 
{ 
$row = mysqli_fetch_assoc($result); 
$name = $row ["name"]; 
echo "Hello welcome".$name; 

} 

else { 
echo "No user found"; 

} 




?> 
+2

따옴표가 누락되었을뿐만 아니라 [SQL 주입]에 대한 코드가 공개되어 있습니다 (http://stackoverflow.com/documentation/php/275/using-a-database/2685/preventing-sql-injection-with). 매개 변수화 된 쿼리). 암호를 일반 텍스트로 저장하면 안됩니다. – Machavity

+0

어떤 오류가 발생 했습니까? (오류 로그를 확인하십시오) 무엇을 의미합니까? 너는 작동하지 않는다고? 쿼리가 실행 중입니까? 출력을 받고 있습니까? 이 질문은 변수에 대한 'var_dump'를 수행하여 값을 다시 확인하는 것과 같은 기본 디버깅 시도조차도 부족합니다. var_dump 쿼리가 올바른지 확인하십시오. 결과를 var_dump하고 false/null을 반환하지 않았는지 확인합니다. var_dump num_rows는 리턴 된 행 수를 표시합니다. 다른 프로그램에서 쿼리를 실행하여 행이 다시 있는지 확인하십시오. 테이블에 예상 한 것과 일치하는 행이 있는지 확인하십시오. –

+0

데이터베이스에서 이름을 선택하지 않습니다. – Zanzi

답변

0

쿼리 문자열을 따옴표로 묶는 것을 잊었습니다. PHP 변수에 쿼리를 작성하므로 따옴표로 묶어야합니다.

$sql_query = "SELECT name from user_info where user_name like '{$user_name}' and user_pass like '{$user_pass'}"; 
2

따옴표를 사용하지 않았습니다. $query이 문자열이라는 것을 기억하십시오!

$con = mysqli_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_DATABASE); 

if(!$con) { 
echo "Connection Error...".mysqli_connect_error(); 
} else { 
echo "Database connection Success..."; 
} 

$user_name = $_POST["login_name"]; 
$user_pass = $_POST["login_pass"]; 

$sql_query = "SELECT name from user_info WHERE user_name like '$user_name' 
and user_pass like '$user_pass'"; 
$result = mysqli_query($con,$sql_query); 

if(mysqli_num_rows($result)>0) { 
    $row = mysqli_fetch_assoc($result); 
    $name = $row ["name"]; 
    echo "Hello welcome".$name; 
} else { 
    echo "No user found"; 
} 
0

어떤 종류의 에러가 발생합니까? ,

$sql_query = "SELECT name from user_info where user_name like '{$user_name}' and user_pass like '{$user_pass}'"; 

이 뜻 : 당신은이 구문을 사용할 수 있습니다

$sql_query = "SELECT name from user_info where user_name like '" . $user_name 
. "' and user_pass like '" . $user_pass . "'"; 

:

귀하의 질의는 당신이 그것을 할당 할 때 따옴표로 둘러싸해야합니다 의미 문자열이어야한다 그러나 SQL Injection Attacks를 열어 두십시오. 자세한 내용은 this part of the PHP documentation을 참조하십시오.

+0

내 쿼리는 string 나는 모든 것을 시도하고 질문을 위해 그것을 다시 놓는 것을 잊어 버렸습니다. 그래서 여전히 문자열이 작동하지 않습니다. – Zanzi

관련 문제