注意:未定义的变量:( PDO)

时间:2013-05-23 08:24:34

标签: php mysql pdo

我一直在尝试超过5个小时来理解为什么我的查询没有返回我的数据库值,我已经使用不同的查询进行测试以返回我的_iD,这取决于我的用户ID并且我能够连接但是我对此我很难过......我一直在...... 我不会问我是不是被严重困住了。

  

注意:未定义的变量:第5行的_iPassword

     

注意:未定义的变量:第8行的_iUsername

public function User_Login($_iUsername,$_iPassword) {

    $md5_password = md5($_iPassword);

    $sth = $db->prepare("SELECT _iD FROM users WHERE _iUsername = :username AND _iPassword = :password AND _iStatus = 1");
    $sth->bindValue(":username", $_iUsername, PDO::PARAM_STR);
    $sth->bindValue(":password", $md5_password, PDO::PARAM_STR);
    $sth->execute();

    if ($sth->rowCount() == 1) {
        $row = $sth->fetch(PDO::FETCH_ASSOC);
        return $row['_iD'];
    } else {
        return false;
    }
}

这是我正在转换的MySQL中的查询,但我不知道会出现什么问题......

public function User_Login($username,$password) {
    $username=mysql_real_escape_string($username);
    $password=mysql_real_escape_string($password);
    $md5_password=md5($password);
    $query=mysql_query("SELECT uid FROM users WHERE username='$username' and password='$md5_password' AND status='1'");

    if( mysql_num_rows( $query ) == 1 ) {
        $row = mysql_fetch_array( $query );
        return $row['uid'];
    } else {
        return false;
    }
}

1 个答案:

答案 0 :(得分:4)

由于某种原因,您从错误消息中省略了文件名,而它将成为关键部分。

$sth->bindValue(":username", $_iUsername, PDO::PARAM_STR);
$sth->bindValue(":password", $md5_password, PDO::PARAM_STR);

行不能是第5行和第8行,因为它们显然是连续的,并且从脚本开头有超过5行。

因此,要么在其他任何文件中发生此错误,要么您正在编辑一个文件但是正在运行另一个文件。

请仔细检查所有这些简单的错字错误,当然你会发现问题