2012-05-11 14 views
0

Hei、私のxmlファイルのユーザー名とパスワードがデータベースのものと同じかどうかを確認しようとしていますが、mysql_num_rowsはゼロです。だから私のSELECTクエリで何かが間違っている必要があります。 これは私のコードです:あなたは、文字列内の変数を挿入している場合、あなたが使用する必要があります私のSELECTクエリは間違っていますか?

$data =mysql_query("SELECT id FROM users WHERE userName ='".$this->xml->parameters->username."' AND password ='".$this->xml->parameters->pass."'"); 
+1

'エコー$データの出力は何でしたか;'? – drew010

+0

クエリでテーブルフィールド名が正しいことを確認してください。 mysqlは大文字と小文字を区別します。 – Vulcan

答えて

1

は試してみてください。

public function verifyDB() 
{ 
    //connection to database 
    mysql_connect('localhost','root','') or die(mysql_error()); 
    mysql_select_db('proiect_is') or die(mysql_error()); 

    $data =mysql_query("SELECT id FROM users WHERE userName ='$this->xml->parameters->username' AND password ='$this->xml->parameters->pass'"); 
    //we check if any row was returned 
    echo $data; 
    echo $this->xml->parameters->username."<BR>"; 
    echo $this->xml->parameters->pass."<BR>"; 
    print_r(mysql_num_rows($data)); 
    if (mysql_num_rows($data)) 
    { 

     $row = mysql_fetch_assoc($data); 
     $this->_id= $row['id']; 
     echo $row; 
     return true; 
    } 
    else 
    {return false;} 

} 

これは私のxmlログインファイルでありますこのように:

"SELECT id FROM users WHERE userName ='{$this->xml->parameters->username}' AND password ='{$this->xml->parameters->pass}'" 

これは変数$this->xml->parameters->usernameを挿入するようにパーサに指示します。それ以外の場合は、$thisを使用します(->xml->parameters->usernameは "[オブジェクトのtoString-Text] - > xml-> parameters-> username"明らかに間違っています)。

+0

ありがとうございます!それは働いた:) – Dianna

8

{}

<xml version=""> 
    <action>log_in</action> 
    <parameters> 
    <username>Ionel P</username> 
<pass>abdef01</pass> 
    </parameters> 
</xml> 
+0

説明のためにありがとう:) – Dianna

1

$data =mysql_query("SELECT id FROM users WHERE userName ='$this->xml->parameters->username' AND password ='$this->xml->parameters->pass'"); 
echo mysql_error(); 

リターンすべてのエラーをしていますか?これは、問題がどこにあるかを示す良い指標となります。

+0

問題解決。ありがとうございました – Dianna

1

は、このいずれかを試してみてください。

$data =mysql_query(sprintf("SELECT id FROM users WHERE userName ='%s' AND password ='%s'", mysql_real_escape_string($this->xml->parameters->username), mysql_real_escape_string($this->xml->parameters->pass))); 
関連する問題