0

我有一个查询,它的工作正常:

$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');

我想要以一些警报或一些好的显示的形式显示此错误消息..任何想法?

4

4 回答 4

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语句

于 2013-07-02T07:32:53.063 回答
0

从技术上讲,该查询不应该返回错误,除非:

  1. 表或列不存在,
  2. 语句中存在解析错误。

在这两种情况下,您要显示的错误消息都不适用;您将需要测试受影响的行数。

也就是说,实际上不可能使用服务器端代码创建警报。但您可以创建一个 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()对话窗口。

于 2013-07-02T07:44:18.800 回答
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 手册页

于 2013-07-02T07:44:19.673 回答
0

您可以简单地在您的 : 中添加一些 HTML 和/或 JS die

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

于 2013-07-02T07:38:38.883 回答