我正在使用以下代码更新mysql行。有人能告诉我,如果更新查询成功且没有任何错误,我如何才能错误检查更新查询并仅打印Success吗?如果更新查询不成功,则打印失败!
<?
$IdVar = $_POST['rowId'];
$DataVar = $_POST['NewData'];
$server = "localhost"; // MySQL hostname
$username = "xxxxxx"; // MySQL username
$password = "xxxxxx"; // MySQL password
$dbname = "test"; // MySQL db name
$db = mysql_connect($server, $username, $password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());
$result = mysql_query("update testDb SET username ='$DataVar' WHERE ID = '$IdVar'");
if (!$result) {
die('Invalid query: ' . mysql_error());
}
echo "Success";
?>
使用mysql_affected_rows计算受影响的行数。如果返回0,则没有更新任何行。
mysql_affected_rows统计成功时受影响的行数,如果上次查询失败,则为-1。
echo ( mysql_affected_rows() > 0 ) ? "Success update" : "No rows update";
mysql函数已弃用,因此您可能需要使用mysqli_函数
使用不推荐使用的mysql函数,可以使用mysql_errno来检查是否发生了错误。
$result = mysql_query("update testDb SET username ='$DataVar' WHERE ID = '$IdVar'");
if(mysql_errno($db)!=0) echo "Something went wrong";
我不会像其他答案所建议的那样检查mysql_affected_rows(),因为mysql_affected_rows()=0
只意味着没有更新任何行,但并不意味着发生了错误。
例如,如果您的用户名="Rolf",id=3,那么如果您执行
$result = mysql_query("update testDb SET username ='Rolf' WHERE ID = '3'")
即使在更新过程中没有错误,也不会影响任何行。