【问题标题】:How to show SQL error in PHP custom mysqli function?如何在 PHP 自定义 mysqli 函数中显示 SQL 错误?
【发布时间】:2015-10-22 14:54:18
【问题描述】:

我找到了一个mysqli查询函数的PHP自定义函数,但是我的问题是,如何显示mysqli函数的错误?

这里是示例 php mysqli 函数:

function connect()
{
    $con    =   mysqli_connect(DB_HOST, DB_USER, DB_PASS);
    $db     =   mysqli_select_db($con, DB_NAME);
    return $con;
}

查询功能:

function query($sql)
{
    return mysqli_query(connect(),$sql);
}

获取关联函数:

function fetchAssoc($sql)
{
    return mysqli_fetch_assoc($sql);
}

这是它的调用或使用方式:

$sql_select = query("SELECT * FROM table_name");
$sql_result = fetchAssoc($sql_select);
$tbl_id = $sql_result['id'];

如果 SQL 查询正确或出现查询错误(如字段名称不正确或表不存在),如何在此处显示?

【问题讨论】:

    标签: php mysql function mysqli


    【解决方案1】:

    在任何查询之后,最后一个 mysqli 错误都存储在连接资源中。要检索它:

    echo mysqli_error($con);
    

    如果要在查询出现错误后直接杀死脚本:

    mysqli_query($con, "some query") or die(mysqli_error($con));
    

    如果您有需要,还有错误号:

    echo mysqli_errno($con);
    

    例子:

    mysqli_select_db($con, "something") or die(mysqli_error($con));
    //if the database is not found it'd print out 'Unknown database "something"'
    

    【讨论】:

    • 取决于您需要如何使用它。或者你想怎么读。只是为了调试吗?错误存储在任何 mysqli 查询之后。因此,您可以在任何查询后调用错误函数。它存储最后一个错误。在mysqli_querymysqli_select_db 之后查看获取数据库是否出错。可以通过这种方式检索任何 mysqli 错误
    【解决方案2】:

    我在 mysql_ 中使用 like 而不是 mysqli。

    function query($sql, $flag= false){
    
     $result  = mysqli_query(connect(),$sql);
    
     if($flag == true && $result == false )
     {
         echo mysqli_errno()."_--".mysqli_error()."<br /> in query.:".$sql;
     }
    
      return $result;
    
    }
    

    另一个问题是你所有的查询都调用了 connect() 函数。

    所以当你使用函数 query() 时,你的 mysql 连接将会重置。


    $mysql_con;
    
    $mysql_con = connect();
    
    function query($sql, $flag= false){
    
     global $mysql_con;
    
     $result  = mysqli_query($mysql_con,$sql);
    
     if($flag == true && $result == false )
     {
         echo mysqli_errno()."_--".mysqli_error()."<br /> in query.:".$sql;
     }
      return $result;
    }
    

    【讨论】:

    • mysql 已过时且安全性较低。你需要使用 mysqli 大声笑。
    • 感谢您的建议。但是我所有的库都是为 mysql 设计的。
    【解决方案3】:

    你可以使用 php 函数 mysqli_error() 和 mysqli_errno() 您可以访问 php.net 获取有关此功能的详细文档

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 2015-06-01
      • 2013-01-05
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      相关资源
      最近更新 更多