我有一个查询,它的工作正常:
$sql=mysql_query("UPDATE customers SET password='$id' WHERE c_number='$users1' ");
$result = mysql_query($sql);
if (mysql_error()) die('Error, You have not used our services before, so no details for you to visit and explore');
我想要的是以某种警报或一些好的显示形式显示此错误消息..任何想法?
答案 0 :(得分:2)
试试这个
if (mysql_error()) {
echo "<script type='text/javascript'>
alert('Error, You have not used our services before, so no details for you to visit and explore');
</script>";
}
即使您可以编写脚本而不回显它(不确定但最大限度地工作)并尝试避免使用mysql_*
函数,因为它们已被删除。相反使用mysqli_*
函数或PDO
陈述
答案 1 :(得分:0)
您只需在die
中添加一些HTML和/或JS:
if (mysql_error())
die('<script type="text/javascript">
alert("Error, You have not used our services before, so no details for you to visit and explore
</script>' );
的PHP DOC
答案 2 :(得分:0)
从技术上讲,该查询永远不会返回错误,除非:
在这两种情况下,您要显示的错误消息都不适用;您将需要测试受影响的行数。
也就是说,使用服务器端代码创建警报实际上是不可能的;但你可以创建一个AJAX端点:
if (errors) {
$response = array('error' => 'Error message here');
} else {
// update this if you want to pass data back to caller
$response = array();
}
header('Content-Type: application/json');
echo json_encode($response);
exit;
在客户端,您将使用AJAX提交表单,如下所示:
$.ajax({
url: '/path/to/endpoint',
data: { whatever },
success: function(response) {
if (response.error) {
alert(response.error);
return;
}
// yay, it worked
}
});
或者,也许为了服务于旧版浏览器,您可以生成(风格化的)HTML响应。我个人不喜欢页面刷新,然后是alert()
对话窗口。
答案 3 :(得分:0)
很抱歉,但你的代码是完全错误的(你正在做两次mysql_query)。 我想你的意思是
$sql="UPDATE customers SET password='$id' WHERE c_number='$users1' ";
$result = mysql_query($sql);
if (mysql_error()) die('Error, You have not used our services before, so no details for you to visit and explore');
引用PHP手册:*自PHP 5.5.0起,该扩展已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关常见问题解答以获取更多信息*
但无论如何,让我们做这项工作(并且更加安全):
$sql="UPDATE customers SET password='".myqsl_escape_string($id)."' WHERE c_number='".mysql_escape_string($users1)."' ";
这可以通过转义$ id和$ users1中的每个可能的特殊字符来防止SQL注入(我怀疑其中至少有一个是用户提交的数据)。
$result = mysql_query($sql);
if ($result===false) die('Error, You have not used our services before, so no details for you to visit and explore');
这里的关键是使用mysql_query的结果,如果查询失败则为FALSE。最好在这里使用'==='比较器,因为我们不想查找0或空字符串,而只查找布尔值false。 有关详细信息,请参阅PHP mysql_query manual page