试图找出未显示成功或失败消息的原因
我在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的消息不是。我检查数据库,我也可以看到记录确实更新了。
我有另一种形式,这有用,所以我有点困惑。非常感谢任何帮助。
答案 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变量保存返回的数组,即错误或消息。