我在linux机器上开发了一些php / mysql代码,运行良好。 在windows上运行wamp
服务器的客户端机器上,同样的操作给出了一个mysql错误 – 哪个php以表格格式整齐地显示。 错误是在与INSERT的mysql查询中,属于重复键。 ( 我知道我可以使用ON DUPLICATE KEY UPDATE
,但这不是问题 )。 问题是,代码应该优雅地处理错误。
它在我的Linux机器上,但在客户端的瓦特 – 它显示错误的详细信息的HTML表格 。 我试着try
catch
函数调用,但是这也不能防止错误在浏览器中显示(PHP文件应该为ajax调用发出json数据,这就是为什么我不能让这些错误显示PHP)。
另外,在PHP文件中,我有
ini_set('display_errors', 1); error_reporting(E_ALL);
而且,因为它的MySQL错误,它正确地不会在Linux上引发任何PHP错误,但在Windows上。
所以基本上,我想知道客户端机器上的PHP设置(或别的什么?)可能导致PHP错误传播/处理,以及如何closures它。
谢谢
你可能想检查你的php.ini,看看这些值:
xdebug.auto_trace=1 xdebug.trace_format=1 mysql.trace_mode = On pdo_mysql.debug = On
如果他们在那里,禁用他们
它更好地使error_reporting(0); 在将代码放在实时服务器上的代码开始时,最好隐藏不必要的错误和通知
首先确保你的MySQL版本号是一样的!
如果您正在使用mysqli,请尝试以下操作:
mysqli_report(MYSQLI_REPORT_OFF);
如果你想用Linux堆栈打开它,请尝试如下所示:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
试试这个
ini_set('display_errors', 0); error_reporting(E_ERROR); OR error_reporting(0);