PDO成功消息未触发

时间:2014-08-18 14:32:53

标签: php mysql pdo

试图找出未显示成功或失败消息的原因

我在php文件中的类中执行以下操作

 public  $errors                   = array();    
 public  $messages                 = array();

...

public function yyyy(xxxx)
$this->db_connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
            $query_user_update = $this->db_connection->prepare('UPDATE users SET user_email = :user_email, user_type = :user_type WHERE id = :id');                                              
            $query_user_update->bindValue(':user_email', $user_email, PDO::PARAM_STR); 
            $query_user_update->bindValue(':user_type', $user_type, PDO::PARAM_STR); 
            $query_user_update->bindValue(':id', $_SESSION['id'], PDO::PARAM_INT);             
            $query_user_update->execute();  
            $count = $query_user_update->rowCount();

我使用$ count来告诉我行是否更新这只用于调试以确保我已更新至少1行。然后我做以下事情:

  if ($query_user_update) { 
                    // Set to true so the page does not reload the form
                    $this->updateuser_successful = true;  
                    // Display success message
                    $this->messages[] = MESSAGE_USERRECORD_CHANGED_SUCCESSFULLY;                                              
                    print("We Have Updated $count rows.\n");                                      
           } else {
                // display failure message
                $this->errors[] = MESSAGE_USERRECORD_CHANGED_FAILED;
           }  

我已经在加载表单的php页面中使用require_once('en.php)包含了包含我所有消息的文件。

运行此命令并更新表单中的记录并提交时,$ count为1,因为屏幕上显示消息“我们已更新1行”但分配给MESSAGE_USERRECORD_CHANGED_SUCCESSFULLY的消息不是。我检查数据库,我也可以看到记录确实更新了。

我有另一种形式,这有用,所以我有点困惑。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你还没有回来或回应。

if ($query_user_update) { 
                    // Set to true so the page does not reload the form
                    $this->updateuser_successful = true;  
                    // Display success message
                    $this->messages[] = MESSAGE_USERRECORD_CHANGED_SUCCESSFULLY;                                              
                    print("We Have Updated $count rows.\n");    
                    return $this->messages;                                  
           } else {
                // display failure message
                $this->errors[] = MESSAGE_USERRECORD_CHANGED_FAILED;
                return $this->errors;
           } 

现在,您可以在表单所在的页面中执行此操作:

$returnData = $someClass->someFunction(params);
for($i = 0; $i < count($returnData); $i++) {
    echo $returnData[$i];
}

$ returnData变量保存返回的数组,即错误或消息。