PDO语句fetchall不返回所需的结果

时间:2017-05-25 15:33:17

标签: php mysql pdo pdostatement

我已经阅读了stackoverflow中的所有其他PDO主题,并尝试了所有的东西,但仍然无法正常工作,我不知道什么是错的

编辑/更改密码页面上的

我正在使用此代码

ob_start();
session_start();
require_once './../account/config.php';
$id = $_SESSION['id'];

if (isset($_POST["submit"])) {
$opwd = mysql_real_escape_string($_POST['oldpwd']);
$npass = mysql_real_escape_string($_POST['newpwd']);
$anpass = mysql_real_escape_string($_POST['renewpwd']);

$sql = "SELECT COUNT(*) AS count from users where id = :id";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":id", $id);
$stmt->execute();
$result = $stmt->fetchAll();

此处,$ result [0] ["密码"]未从表用户和列密码

中获取结果

我甚至尝试了$ result ["密码"]但是没有工作, 在其他页面中,相同的方法工作非常完美,但这里没有取得结果

因此,即使用户输入正确的旧密码,其返回的当前密码也不正确

if($result[0]["password"] !== $opwd) {
$msg = "Current Password is Incorrect";
} 
elseif($npwd !== $rnpwd) {
$msg = "New Passwords did not match.";
}
elseif (($result[0]["password"] === $opwd) &&  $npwd === $rnpwd) {
$sql = "UPDATE `users` SET  (`password`, `retype`) = (:npswd , :anpwd) WHERE `id` = :id";
    $stmt = $DB->prepare($sql);
    $stmt->bindValue(":npswd", $npass);
    $stmt->bindValue(":anpwd", $anpass);
    $stmt->bindValue(":id", $id);
    $stmt->execute();
    $msg = "Your Password is changed successfully";
    $msgType = "success";
    }
   else {
   $msg = "Error Occured. Please Contact us if you have some issue.";
   }
   }
  catch (Exception $ex) {
  echo $ex->getMessage();
 }
 }

请指导我在这里缺少什么

0 个答案:

没有答案