如何在屏幕上显示此mysql错误

时间:2009-07-24 14:48:46

标签: php

当前函数在PHP中运行mysql查询并在有屏幕时显示错误。我试图让它只向具有会话$_SESSION['auto_id'] == 1的用户显示查询和错误消息,而普通用户只会看到一条消息说有错误

在第二个例子中,我试图这样做,但我不确定如何在内部正确解析代码或死掉(“”)

使用:

<?PHP    
    function executeQuery($sql) {
        $result = mysql_query($sql) or die("<span style='FONT-SIZE:11px; FONT-COLOR: #000000; font-family=tahoma;'><center>An Internal Error has Occured. Please report following error to error@friendproject.com<br><br>" . $sql . "<br><br>" . mysql_error() . "'</center></FONT>");
        return $result;
    }
?>

不起作用:

<?PHP
    function executeQuery($sql) {
        $result = mysql_query($sql) or die("
        <span style='FONT-SIZE:11px; FONT-COLOR: #000000; font-family=tahoma;'><center>An Internal Error has Occured. The error has been recorded<br>'</center></FONT>
        if($_SESSION['auto_id'] == 1){
            echo = '<br>' . $sql . '<br><br>' . mysql_error() . "
        }
        ");
?>

2 个答案:

答案 0 :(得分:2)

传递给die()的字符串将被发送到浏览器,其中的任何PHP代码都将被视为文字字符串而不被解释。你可能想要更像这样的东西:

<?PHP
function executeQuery($sql) {
    $result = mysql_query($sql);
    if (!$result) {
         $error = "<span style='FONT-SIZE:11px; FONT-COLOR: #000000; font-family=tahoma;'><center>An Internal Error has Occured. The error has been recorded<br>'</center></FONT>";

        if($_SESSION['auto_id'] == 1){
            //append mysql error to string we are about to output
            $error .= '<br>' . $sql . '<br><br>' . mysql_error() ;
        }
       die($error);
    }
    return $result;
}

答案 1 :(得分:1)

尝试在mysql_query之后执行此操作:

if(mysql_error())
{
    // Do Stuff

  if($_SESSION['auto_id'] == 1)
  {
    // Do More Stuff
  }
die();
}

这将允许您实现相同的效果,并格式化您的错误。

至于为什么你的陈述不起作用:ifs在引号内没有被执行。