我试图使用PHP表单来更新SQL数据库.
花了好几个小时后我终于能够更新数据库,但即使找不到与字符串匹配的行,问题仍然存在,它仍然会返回消息"已成功更新数据".我检查了数据库,并没有输入任何其他的输入,但我真的想让用户知道他们错误输入ID.
谢谢
if (isset($_POST['update'])) {
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if (! $conn ) {
die('Could not connect: ' . mysql_error());
}
$UniqueID = mysql_real_escape_string($_POST['UniqueID']);
$Referral = mysql_real_escape_string($_POST['Referral']);
mysql_select_db('database');
$sql = "UPDATE tablename set Referral = '$Referral' WHERE ID = '$UniqueID'";
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
} else {
echo "Updated data successfully\n";
}
mysql_close($conn);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
那是因为不更改任何行的更新不是失败.它只是一个更改/发现/影响没有行的查询.
您需要检查mysql_affected_rows().
例如
$result = mysql_query(...);
if ($result === false) {
die(mysql_error()); // something blew up completely
} else if (mysql_affected_rows() == 0) {
... nothing was changed
}
Run Code Online (Sandbox Code Playgroud)
sql中的失败是由于语法错误,通信错误或违反约束的"元"错误.空结果集是一个完全有效的结果集,恰好是空的.
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |