嘿,我正在尝试验证我的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;}
}
Run Code Online (Sandbox Code Playgroud)
这是我的xml登录文件:
<xml version="">
<action>log_in</action>
<parameters>
<username>Ionel P</username>
<pass>abdef01</pass>
</parameters>
</xml>
Run Code Online (Sandbox Code Playgroud)
如果你在字符串中插入变量,你应该这样使用{}:
"SELECT id FROM users WHERE userName ='{$this->xml->parameters->username}' AND password ='{$this->xml->parameters->pass}'"
Run Code Online (Sandbox Code Playgroud)
这告诉解析器插入变量$this->xml->parameters->username,否则它只会尝试使用$this(并留下->xml->parameters->username文本,最终会出现在" [toString-Text of your Object] - > xml-> parameters-> username "这显然是错误的).