我想要这样的事情:
or function() { echo mysql_error().'<br>'; } // doesn't work
而不是:
or die(mysql_error());
我想继续执行脚本,而不是“死”。我不能用那种匿名函数吗?我只是不喜欢这个名字。
编辑/提示:为了创建匿名函数,有一个名为create_function的lambda样式函数...
答案 0 :(得分:4)
or print mysql_error();
虽然将它打印出来然后就像死亡一样糟糕
在完美的世界里,它将是
$res = mysql_query($query) or trigger_error(mysql_error().$query);
总是那样做。您不仅可以获得文件名和行号(当您在页面上有大量查询时,MIGHTY会很有帮助),而且还会在生产服务器上保密敏感信息,您可以在其中显示错误并登录。< / p>
答案 1 :(得分:2)
function() { echo mysql_error().'<br>'; }
定义一个函数,它不会调用它。要打电话,你必须
$a = function() { echo mysql_error().'<br>'; };
$a();
或使用call_user_func
,例如:
false or call_user_func(function() { echo "hi".'<br>'; });
当然,你不妨写一下;
false or printf("hi<br />");
echo
不起作用因为它不是一个函数;它是一种语言结构。(由于print
也是一种语言结构而且它确实有效,因此不适用于其他一些语法原因。)
答案 2 :(得分:0)
如果在函数前放置@,它将抑制错误。
$example = @mysql_query(....);
虽然使用它通常是一个坏主意。