Ошибка mySQL при попытке обновить пустую строку

Создаю небольшой проект и пытаюсь учиться по ходу дела.

Я получаю коды ошибок нормально, если таблицы имеют неправильные названия и т.д., но если я пытаюсь ОБНОВИТЬ пустую строку, я не получаю сообщение об ошибке. Я хочу, но это не говорит мне, что я облажался. Это нормально?

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();
}
}

Как я уже сказал, это работает, как и ожидалось, с большинством ошибок, но не с проблемой пустого обновления.

0

Решение

$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
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector