0

こんにちは、xml ファイルのユーザー名とパスワードがデータベースのユーザー名とパスワードと同じかどうかを確認しようとしていますが、mysql_num_rows がゼロです。したがって、私の SELECT クエリに何か問題があるに違いありません。これは私のコードです:

 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ログインファイルです:

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

4 に答える 4

8

文字列に変数を挿入する場合は、次の{}ように使用する必要があります。

"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-オブジェクトのテキスト]-> xml-> parameters-> username」になり、明らかに間違っている)。

于 2012-05-11T17:51:14.320 に答える
1

試す:

$data =mysql_query("SELECT id FROM users WHERE userName ='".$this->xml->parameters->username."' AND password ='".$this->xml->parameters->pass."'");
于 2012-05-11T17:50:28.580 に答える
1

しますか

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

エラーを返しますか?これにより、問題がどこにあるかがわかります。

于 2012-05-11T17:51:35.070 に答える
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)));
于 2012-05-11T17:51:47.463 に答える