Я не уверен, какой метод лучше всего использовать при предоставлении READABLE обратной связи конечному пользователю. Я читал некоторые форумы, но на самом деле не стал мудрее (или не понял)
Я хотел бы дать отзыв, если вставка / обновление не удалось, когда это произойдет, и когда будет предоставлен пользовательский отзыв (например, проверка наличия элемента уже существует).
При INSERT, UPDATE, DELETE, DROP и т. Д. Запрос возвращает значение TRUE или FALSE.
Поэтому мое свойство результата $ this-> query_result всегда должно иметь значение true или false.
Мои проблемы:
- Динамически отображать обратную связь с пользователем
после отправки формы (подчиняется
страница)
- $ this-> query_result - true, если оно
возвращает строку
Я добавил код, чтобы посмотреть, что я делаю (делаю неправильно)
Это функции, которые я использую для подключения / запроса к БД:
public function connect()
{
if (!($this->conn = mysql_connect($this->host, $this->username, $this->pwd))) {
die("Error connecting to DB by user = " . $this->username);
}
$this->db = mysql_select_db($this->dbname,$this->conn)
or die("Unable to connect to database " . $this->dbname);
}
private function query($sql)
{
$this->query_result = mysql_query($sql, $this->conn)or die("Unable to query local database <b>". mysql_error()."</b><br>$sql");
if (!$this->query_result){
die("database query failed.");
} else {
return $this->query_result;
}
}
Вот моя проблема: я даю отзыв об уровне доступа к данным (DAL), см., Например, это:
public function addNewPerson($formData)
{
$sql = "INSERT INTO my_table(`name`, `email`, `www`)";
$sql .= " VALUES('".
$formData['name']."','".
$formData['email']."','".
$formData['www']."','");
$this->query($sql);
return $this->query_result;
}
Возвращая текстовую строку, возвращаемый результат всегда будет истинным.
Из того, что я прочитал, у меня, вероятно, должна быть функция, которая обрабатывает ошибки / обратную связь.
Это то, что я сейчас делаю с отзывами в моем шаблоне:
if (isset($_POST['form_submit']))
{
if (isset($_POST['person_submit'])) {
$formData = $sl->getFormData();
$result = $myDB->addNewPerson($formData);
if ($result == true)
{
echo '<script type="text/javascript" language="JavaScript">
jQuery("#contentArea .messageWindow1").show(500);
jQuery("#contentArea :input").click(function(){ jQuery("#contentArea .messageWindow1").hide(500); });
</script>';
} else {
echo '<script type="text/javascript" language="JavaScript">
jQuery("#contentArea .messageWindow2").show(500);
jQuery("#contentArea :input").click(function(){ jQuery("#contentArea .messageWindow2").hide(500); });
</script>';
}
}
}
<div id="contentArea">
<div class="messageWindow1"> <span class="msg"><?php echo $labelResult ?></span></div>
<div class="messageWindow2"> <span class="msg"><?php echo $labelResult ?></span></div>
</div>