Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress插件中的PHP错误处理_Php_Database_Wordpress_Plugins - Fatal编程技术网

WordPress插件中的PHP错误处理

WordPress插件中的PHP错误处理,php,database,wordpress,plugins,Php,Database,Wordpress,Plugins,我对PHP和Wordpress都是新手(但在C#中做得很好),我正在努力理解我试图编写的自定义插件中的错误处理。该插件的基本功能是查询现有的MSSQL数据库(注意它不是标准的MYSQL数据库…),并将行返回到屏幕。这工作得很好,但是托管提供商使我的数据库离线,这导致了错误处理问题(我认为这是可以的) 以下代码无法连接到数据库(如预期),但在屏幕上显示错误并停止页面处理。它甚至不输出“或死亡”错误文本 问题:我如何只输出一条简单的“无法加载数据”消息,并正常继续 函数生成数据() { 全球$员额;

我对PHP和Wordpress都是新手(但在C#中做得很好),我正在努力理解我试图编写的自定义插件中的错误处理。该插件的基本功能是查询现有的MSSQL数据库(注意它不是标准的MYSQL数据库…),并将行返回到屏幕。这工作得很好,但是托管提供商使我的数据库离线,这导致了错误处理问题(我认为这是可以的)

以下代码无法连接到数据库(如预期),但在屏幕上显示错误并停止页面处理。它甚至不输出“或死亡”错误文本

问题:我如何只输出一条简单的“无法加载数据”消息,并正常继续

函数生成数据()
{
全球$员额;
如果(“$post->post_title”==“Home”)
{ 
尝试
{
$myServer=“”;
$myUser=”“;
$myPass=“”;
$myDB=”“;
//与数据库的连接
$dbhandle=mssql\u connect($myServer、$myUser、$myPass)
或者死亡(“无法打开数据库$myDB”);
//…此处进行查询处理。。。
}
捕获(例外$e)
{
echo“无法加载数据
”; } } 返回$content; }
生成错误:(第31行是$dbhandle=mssql\u connect…)

警告:mssql_connect()[function.mssql connect]:无法连接到第31行中的服务器

致命错误:第31行中超过了30秒的最长执行时间。首先,如果出现问题时发出警告,则无法避免:您只能使用以下命令隐藏它:

注意:当发生连接错误时,您不应该
die()
:它将停止整个应用程序的执行,这肯定是不需要的


致命错误是第二个问题(可能是第一个问题的后果)

请注意,您无法从致命错误中恢复:它是致命的。这意味着你必须以某种方式避免它

在这里,错误是您的脚本工作时间超过秒;由于错误报告在
mssql\u connect
行中,因此我假设脚本正在等待连接成功,并且在不到30秒的时间内不会被删除


我没有要测试的SQL Server数据库,但看看mssql手册的一节,我会说这些看起来很有趣:

       name               Default value
mssql.connect_timeout        "5"
mssql.timeout                "60"
你可以试着改变这些

  • 在php.ini文件中,如果可以修改的话
  • 或者在尝试连接之前使用
在第二种情况下,类似这样的事情可能会奏效:

ini_set('mssql.connect_timeout', '3');
ini_set('mssql.timeout', '3');
首先,如果在出现问题时发出警告,您无法避免它:您唯一能做的就是使用以下命令隐藏它:

注意:当发生连接错误时,您不应该
die()
:它将停止整个应用程序的执行,这肯定是不需要的


致命错误是第二个问题(可能是第一个问题的后果)

请注意,您无法从致命错误中恢复:它是致命的。这意味着你必须以某种方式避免它

在这里,错误是您的脚本工作时间超过秒;由于错误报告在
mssql\u connect
行中,因此我假设脚本正在等待连接成功,并且在不到30秒的时间内不会被删除


我没有要测试的SQL Server数据库,但看看mssql手册的一节,我会说这些看起来很有趣:

       name               Default value
mssql.connect_timeout        "5"
mssql.timeout                "60"
你可以试着改变这些

  • 在php.ini文件中,如果可以修改的话
  • 或者在尝试连接之前使用
在第二种情况下,类似这样的事情可能会奏效:

ini_set('mssql.connect_timeout', '3');
ini_set('mssql.timeout', '3');

您可能还希望查看WP_Error类,以优雅的方式处理错误。请注意,这是一种通用方法&您必须单独处理特定的错误检测逻辑。WP_Error将帮助您将所有错误收集到一个地方。

您可能还需要查看WP_Error类,以便以优雅的方式处理错误。请注意,这是一种通用方法&您必须单独处理特定的错误检测逻辑。WP_Error将帮助您在一个位置收集所有错误。

+1查看配置。必须是一个php或mysql配置问题谢谢你的回答,非常详细。我从这里得到了DB代码,后来我删除了'die'位,并添加了@,但它似乎仍然停止处理页面。它不会输出错误,但也不会处理任何其他内容。我做了一个简单的测试:echo($dbhandle=@mssql_connect($myServer,$myUser,$myPass));我希望得到正确或错误的结果,但没有输出任何内容(页面处理再次停止)。打开C#hat后,我是否需要在该行中添加一个PHP等价的“.ToString()”?@操作符正在使警告和错误都静音(它仍在发生,但没有显示任何消息,因此脚本结束时没有任何其他信息);;;如果设置超时选项不起作用,那很糟糕:-(+1用于查看配置。一定是php或mysql配置问题。谢谢你的回答,非常详细。我从这里获得了DB代码,后来我删除了'die'位,并添加了@,但它似乎仍然停止处理页面。它不会输出错误,但也不会处理任何其他内容。我做了一个简单的测试:echo($dbhandle=@mssql_connect($myServer,$myUser,$myPass));我希望得到正确或错误的结果,但没有输出任何内容(页面处理再次停止)。打开C#hat后,我是否需要在该行中添加一个与PHP等效的“.ToString()”?操作符正在使警告和错误(它)静音