当前函数在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() . "
}
");
?>
答案 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在引号内没有被执行。