Создаю небольшой проект и пытаюсь учиться по ходу дела.
Я получаю коды ошибок нормально, если таблицы имеют неправильные названия и т.д., но если я пытаюсь ОБНОВИТЬ пустую строку, я не получаю сообщение об ошибке. Я хочу, но это не говорит мне, что я облажался. Это нормально?
public function updateMessage($id){ //done
try{
global $pdo;
$temp=$this->_message;
$sql = "UPDATE message SET content=:val WHERE id=$id";
$s = $pdo->prepare($sql);
$s->bindValue(':val',$temp);
$s->execute();
}
catch (PDOException $e)
{ $loc = $_SERVER['PHP_SELF'];
$output = "Unable to connect to the database server: $loc <br><h3>Please contact
Steve via text on ###### quoting:</h3><h5>" . $e->getMessage() . "<br>
Found at $loc.</h5>
<h3>Thanks. </h3>". "<br>"."<br>" ;
include $_SERVER['DOCUMENT_ROOT'] ."/beta01/includes/output.html.php";
exit();
}
}
Как я уже сказал, это работает, как и ожидалось, с большинством ошибок, но не с проблемой пустого обновления.
$sql = "UPDATE message SET content=:val WHERE id=$id";
Если это «пустая строка» (при условии, что я вас правильно понимаю), то это не соответствует условию WHERE id=$id
, так что это работало — оно обновляло содержимое сообщения для каждой строки с этим идентификатором (не было ни одного).
Звучит так, будто вы хотите знать, не затронули ли запрос строки, и в этом случае вы можете сделать следующее:
$s->execute();
if ($s->rowCount() < 1) {
//throw an exception, show a warning, whatever you want to do
}
Других решений пока нет …