【问题标题】:How to turn off an errors for a specific mysql/php function [duplicate]如何关闭特定mysql / php函数的错误[重复]
【发布时间】:2014-01-16 05:12:27
【问题描述】:

所以我想关闭执行此代码时可能出现的警告错误。

for ($i=0; $i < count($project_array); $i++) { 

  $projecthours[$i] = project_hours($project_array[$i]);
  $project_name = $project_array[$i];

  $impact_query = "SELECT * FROM impact_data WHERE project_name ='$project_name'";
  $impact_search = mysql_query($impact_query);
  $impact_num = mysql_num_rows($impact_search);


  if ($impact_num > 0 ) {

          // Do something

  } //IMPACT_NUM IF 

  else {

      Do Something Else

  } // ELSE statement

即使我在这两个函数前面都加上了 @ 符号,我仍然会收到以下错误。我不想关闭页面的所有错误,因为我认为这是一个坏主意,而且我仍在网站上工作。这是我仍然收到的警告。

警告:mysql_num_rows() 期望参数 1 是资源

【问题讨论】:

  • 为什么不直接检查结果而不是隐藏错误?
  • 您不能在代码中关闭来自 php 的警告,您必须在 php.ini 中执行此操作。您应该重新进行编码以解决此错误,以便可以执行 sql 语句。你提供的代码块之前是什么?
  • 为什么资源应该是数字?它应该是一种资源。
  • 我只想检查这些项目名称是否在数据库中。我还能怎么做?如果他们是我希望它这样做,如果不做其他事情。
  • @iamde_coder 只是我写的一个函数,与查询无关。

标签: php mysql error-handling


【解决方案1】:

我认为这对你有帮助:

error_reporting(0);
$impact_num = @mysql_num_rows($impact_search);
error_reporting(E_ALL);`

谁说不可能? PHP 非常灵活。 =)

【讨论】:

  • 哈哈,错误实际上已经消失,所以它可以工作,但我把它放在 for 循环开始之前,因为仍然会出现一个错误。
【解决方案2】:

先检查$impact_search怎么样

if(is_resource($impact_search))
{
    $impact_num = mysql_num_rows($impact_search);
    // Remaining stuff here
}

【讨论】:

    猜你喜欢
    • 2012-10-04
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2013-09-07
    • 2014-12-11
    • 2012-05-29
    相关资源
    最近更新 更多