2013-11-04 4 views
-2

다른 스레드에서 phpMyAdmin의 쿼리를 붙여 넣으면 그 행의 양이 반환되지만 내 경우에는 phpMyAdmin의 값도 반환하지 않습니다. 항상 0입니다! 다음은 쿼리입니다 :mysql_num_rows()가 0을 반환하는 이유는 무엇입니까?

$query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '$usu' AND pass = '$pass';"; 

나는 .PHP 파일을 열고 쿼리를 실행하고 다음과 같이 빈 값을 반환 : 나는 또한 반환되는 값을 에코하려

SELECT nom_usu FROM usuarios WHERE nom_usu = '' AND pass = ''; 

, 맞춰봐? 제로!

<?php 

    include('dbConfig.php'); 

    $usu = $_POST["usu"]; 
    $pass = $_POST["pass"]; 

    $query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '$usu' AND pass = '$pass';"; 

    echo $query."\n"; 

    if($resultado = mysql_query($query)){ 
     if(mysql_num_rows($resultado) > 0){ 
     echo mysql_num_rows($resultado); 
     echo "Todo est&aacute; bien, no te preocupes :)"; 
     echo true; 
     } else { 
     echo mysql_num_rows($resultado); 
     echo "Hay algo mal aqu&iacute; :("; 
     } 
    } else { 
    echo false; 
    } 

?> 

그리고 dbConfig.php 파일 :

<?php 

$host="localhost"; 
$user="neosoftw_lambda"; 
$contra="myPass"; <- This is not actually my password... 
$db="neosoftw_lambdaMovil"; 

$ms = mysql_connect($host, $user, $contra) or die("No se pudo conectar :("); 
mysql_select_db($db, $ms) or die ("No hay base de datos :("); 

?> 

이 희망 누군가가 내가 갈 곳 저를 알아낼 수 있습니다 여기에

는 전체 .PHP 파일 (로그인을위한)입니다 잘못된?

내가 원하는 것은 jQuery Mobile의 로그인이지만 작동하지 않는다!

아이디 : 브라이언 암호 : 아줄

http://android.neosoftware.org.mx/

편집

아마 때문에 내 자바 스크립트를 수 있을까?

$.post("http://android.neosoftware.org.mx/PHP/login.php", {usu : usu, pass : pass}, function(respuesta_login){ 

      if(!($("#txt_usuario").val() || $("#txt_password") == '')){ 
       $.mobile.changePage("#campos_vacios"); 
      } else { 
       if(respuesta_login == 1){ 
        $("#txt_usuario").val(''); 
        $("#txt_password").val(''); 
        $.mobile.changePage("#pag_principal"); 
       } else { 
        $.mobile.changePage("#error_login"); 
       } 
      } 


     }); 
+2

당신이 데이터와 데이터베이스 구조를 게시 할 수 있습니까? 또한, SQL 주입 .. 어쩌구 저쩌구. –

+0

당신의 POST 값은 거기에 없기 때문에 간단합니다. 'var_dump ($ _ POST);의 결과는 무엇입니까? –

+0

일반적으로 AJAX를 사용하여 다른 도메인으로 값을 보낼 수 없다는 것을 알고 있습니까? 'android.neosoftware.org.mx/PHP/login.php'는 자바 스크립트와 동일한 도메인입니까? –

답변

0

이 쿼리를 사용해보십시오.

$query = "SELECT `nom_usu` FROM usuarios WHERE `nom_usu` = '".$usu."' AND `pass` = '".$pass."'"; 


또한 이러한 유형의 문제는 $_POST 변수가 비어있을 때 .. 그래서 두 번 코드를 확인 occurre.


참고 :mysql_* 기능이 mysqli_* 기능에 대한 이동 최대한 빨리, 사용되지 않습니다.

+1

기능적으로이 질문에서 다크 틱을 제외한 OP의 쿼리와 다른 점은 무엇입니까? 이걸 어떻게 풀어야 할까? –

+0

@Hanky ​​웃 Panky 내 모든 쿼리를 확인 했습니까? 다른 업데이트를 볼 수 없습니까? –

+0

아니요 다른 업데이트가 없습니다. 이러한 추가 인용 부호는 반드시 필요하지 않으며 쿼리는 쿼리와 100 % 동일한 결과를 생성합니다. 보간은 큰 따옴표로 잘 동작합니다. 그들의 문제는 그 변수들이 가치를 지니지 않는다는 것입니다. –

0

mysql은 더 이상 사용되지 않으므로 mysqli 또는 PDO 문을 사용하십시오.

$usu = mysqli_real_escape_string($_POST["usu"]); 
$pass = mysqli_real_escape_string($_POST["pass"]); 

$query = "SELECT nom_usu FROM usuarios WHERE nom_usu = '".$usu."' AND pass = '".$pass."'"; 

을 또한 당신의 상태는 incorrect.It은 다음과 같이해야한다 :이 시도

if($resultado == mysqli_query($query)){ 
+0

그게 무슨 일이 있었는지 다른 생각이 들지 않았나요? 나는 그것이 무엇이 잘못되었는지를 이해하지 못한다! 변수는 쿼리에서 비어 있으며 올바른 필드를 보내고 jQuery 응용 프로그램은 항상 "잘못된 정보"대화 상자로 나를 보냅니다! –

+0

당신의 POST 값은 거기에 없기 때문에 간단합니다. 'var_dump ($ _ POST);의 결과는 무엇입니까? –

+0

mysqli 호출 구문이 잘못되었습니다. http://us3.php.net/mysqli_real_escape_string –

관련 문제