我正在使用以下代码更新mysql行。任何人都可以告诉我如何错误检查更新查询,如果更新查询成功没有任何错误,只打印成功?如果更新查询不成功,则打印失败!
<?
$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";
?>
答案 0 :(得分:1)
使用mysql_affected_rows计算受影响的行数。如果返回0,则不更新任何行。
答案 1 :(得分:1)
mysql_affected_rows计算成功时受影响的行数,如果上次查询失败,则计算-1。
echo ( mysql_affected_rows() > 0 ) ? "Success update" : "No rows update";
答案 2 :(得分:0)
不推荐使用mysql函数,因此您可能希望使用mysqli_ functions。
使用已弃用的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
仅表示没有更新行,但这并不意味着发生了错误。
例如,如果您有用户名=&#34; Rolf&#34; id = 3,然后执行
$result = mysql_query("update testDb SET username ='Rolf' WHERE ID = '3'")
即使在更新期间没有错误,也不会影响任何行。