php pdo语句没有向上移动表?

php pdo语句没有向上移动表?,php,mysql,pdo,Php,Mysql,Pdo,我试图用以下代码更新表,但总是将rowcount设置为0,并且表不会更新。当我使用phpmyadmin时,相同的查询会更新表 $query="UPDATE userprofile SET password=:newpassword WHERE userid=:userid AND password=:oldpassword"; $queryprepare=parent::getPreparedQuery($query); $queryprepare->bindParam(':newpass

我试图用以下代码更新表,但总是将
rowcount
设置为
0
,并且表不会更新。当我使用phpmyadmin时,相同的查询会更新表

$query="UPDATE userprofile SET password=:newpassword WHERE userid=:userid AND password=:oldpassword";
$queryprepare=parent::getPreparedQuery($query);
$queryprepare->bindParam(':newpassword',$newpassword);
$queryprepare->bindParam(':userid',$userid);
$queryprepare->bindParam(':oldpassword',$oldpassword);
$queryprepare->execute();

我不是PDO专家,但通常不修改表的更新取决于缺少提交

您使用哪种DB(和ISAM引擎)

编辑

查看PDO手册,我发现:关于连接的正确编码。 我通常将所有链(html页面、db连接、db列类型)设置为相同的编码(通常为UTF-8),以避免任何问题

在您的情况下,如果您的密码包含一些“二进制”字符,其中将不匹配,因此不会进行更新


只需删除旧的密码条件即可验证我的假设。

考虑到PHPMyAdmin无法执行准备好的语句,我怀疑这是同一个查询。检查你的变量,确保它们是你认为的。有99%的可能性不是。实际上我使用的是类变量,没有提到“this”。你真的应该开发php错误报告最大化的代码。我打赌你没有利用它浪费了很多时间。我使用的是mysql数据库和storage engine=innodb