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