我正在尝试使用以下代码更新表格,但总是将 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 专家,但通常没有表修改的更新取决于缺少提交。
您使用哪个数据库(和 ISAM 引擎)?
编辑
查看 PDO 手册我发现了这个 post of nils andre with my googelian maily accou :关于连接的正确编码。 我通常将所有链(html-page、db-connection、db-column-type)设置为相同的编码(通常是 UTF-8)以避免任何问题。
在您的情况下,如果您的密码包含一些“二进制”字符,where 将不匹配,因此不会更新。
只需删除旧密码条件即可验证我的假设。
关于php pdo 语句没有更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273365/