在我的 PHP INSERT/UPDATE 代码中,我一直在为一个相当基本的概念而苦苦挣扎。我是否应该在每次插入/更新后始终检查受影响的行数,因为在绝大多数情况下,我只执行一次插入/更新,而且它似乎导致的问题比通过检查只有一行受到影响来解决的问题更多.
下面是我执行 INSERT/UPDATE 的标准代码,如果用户在不更改任何内容的情况下更新记录,则此代码将失败,因为受影响的行将为 0。我可以编写代码来检查至少一个字段已更改但在大型表单上这看起来很笨拙,想知道它是否真的值得,因为无论如何我从来没有真正通过检查这个数字来发现任何错误。
<?php
$whereSql = '';
$groupSql = 'INSERT INTO';
if(isset($_POST['id']) && is_numeric($_POST['id'])){
$groupSql = 'UPDATE';
$whereSql = 'WHERE id = ' . $_POST['id'];
}
$groupSql .= ' sometable SET name="' . $name . '" ' . $whereSql;
$groupDb = mysqli_query($groupSql, $dbObject) or die("Login DB error:".mysql_error());
if(mysqli_affected_rows($dbObject) == 1){
//redirect
}else{
die('System Error');
}