建立一个小项目并尝试学习。
如果表名错误,我会得到错误代码,但如果我尝试更新空行,我就不会收到错误。我想,但它并没有告诉我,我搞砸了。这是正常的吗?
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 :(得分:0)
$sql = "UPDATE message SET content=:val WHERE id=$id";
如果它是一个“空行”(假设我理解你正确),那么它不符合条件WHERE id=$id
,所以它有效 - 它更新了具有该id的每一行的消息内容(那里没有)。
听起来您想知道查询是否没有行影响,在这种情况下您可以这样做:
$s->execute();
if ($s->rowCount() < 1) {
//throw an exception, show a warning, whatever you want to do
}