当前位置: 首页 > 知识库问答 >
问题:

如何在PHP中显示一个长查询的MySQL错误,这取决于用户输入?[重复]

司徒云
2023-03-14

在PHP中,我试图执行一个长的MySQL查询,这取决于用户输入。但是,我的查询失败了以下消息,

"Query Failed".

实际上,每当查询失败时,我都会打印这条消息,但我很难找到失败背后的原因。不幸的是,我找不到它,因为网页上没有指定错误。是否有办法在网页上显示导致故障的错误消息?

这是我的代码,

$from = "Findings";
$where = "";

if ($service != null)
{
    $from = $from . ", ServiceType_Lookup";
    $where= "Findings.ServiceType_ID= ServiceType_Lookup.ServiceType_ID AND ServiceType_Name= ". $service;

    if ($keyword != null)
        $where= $where . " AND ";
}

if ($keyword != null)
{
    $where= $where . "Finding_ID LIKE '%$keyword%' OR
                     ServiceType_ID LIKE '%$keyword%' OR
                     Title LIKE '%$keyword%' OR
                     RootCause_ID LIKE '%$keyword%' OR
                     RiskRating_ID LIKE '%$keyword%' OR
                     Impact_ID LIKE '%$keyword%' OR
                     Efforts_ID LIKE '%$keyword%' OR
                     Likelihood_ID LIKE '%$keyword%' OR
                     Finding LIKE '%$keyword%' OR
                     Implication LIKE '%$keyword%' OR
                     Recommendation LIKE '%$keyword%' OR
                     Report_ID LIKE '%$keyword%'";
}

$query = "SELECT Finding_ID,
                 ServiceType_ID,
                 Title,
                 RootCause_ID,
                 RiskRating_ID,
                 Impact_ID,
                 Efforts_ID,
                 Likelihood_ID,
                 Finding,
                 Implication,
                 Recommendation,
                 Report_ID  FROM ".$from . " WHERE " . $where;

echo "wala 2eshiq";

$this->result = $this->db_link->query($query);
if (!$this->result) {
    printf("Query failed: %s\n", mysqli_connect_error());
    exit;
}

$r = mysqli_query($this->db_link, $query);
if ($r == false)
    printf("error: %s\n", mysqli_errno($this->db_link));

共有3个答案

丁淇
2023-03-14

使用函数die():

or die(mysql_error());
柳翼
2023-03-14

我使用以下方法打开MySQLi的所有错误报告

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

*注意:不要在正式生产环境中使用。

雍嘉勋
2023-03-14

使用以下命令:

mysqli_query($this->db_link, $query) or die(mysqli_error($this->db_link)); 
# mysqli_query($link,$query) returns 0 if there's an error.
# mysqli_error($link) returns a string with the last error message

您也可以使用它来打印错误代码。

echo mysqli_errno($this->db_link);

看看这里和这里

 类似资料:
  • 问题内容: 在PHP中,我试图执行一个长的MySQL查询,该查询取决于用户输入。但是,我的查询失败,并显示以下消息, 实际上,每当查询失败时,我都会打印此消息,但是我很难找到此失败背后的原因。不幸的是,我找不到它,因为该错误未在网页上指定。有没有办法在网页上显示导致失败的错误消息? 这是我的代码, 问题答案: 用这个: 您也可以使用它来打印错误代码。 看看这里和这里

  • 我需要从查询a级状态回来。在查询中,我发送两个用户输入:body_weight和lift_weight。因此,任务是:获得最接近的体重值,并比最接近的lift_weight值更接近用户输入并打印出水平示例:用户体重=54 kg,他的lift weight为60 kg,这是使他达到中间水平。 我试着用工会做些什么,但在Mariadb是错误的: 我只想在我的Java专家系统中使用那一行

  • 问题内容: 这个问题已经在这里有了答案 : mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误? (1个答案) mysqli还是死了,它一定要死吗? (4个答案) 5年前关闭。 我正在使用以下脚本来处理将信息添加到我的网站的表单。我遇到的问题是,当我提交表单时,什么也没有提交到数据库,并且没有错误。如何将错误报告添加到查询

  • 问题内容: HTML代码 PHP代码 这会显示一条警告消息 ,说明是否有错误? 问题答案: 在else块中,您可以看到如何捕获MySQL错误并将其显示在警报中。

  • 我目前有下拉选择和使用JavaScript显示/隐藏值的工作代码,这取决于所选择的内容,正如你可以看到下面的代码。我想做的是,根据新建和使用的选择,有三种不同的表单输入。如果选择使用,它会直接进入带有输入的表单。如果你选择新的,它会带来另一个下拉列表,你可以选择租赁或购买,并根据这一点选择另外两个表单显示。我知道如何提交一个表单只是一个表单到PHP使用POST。但是,我的问题是,因为根据下拉,表单

  • 问题内容: 我有一个数据库表看起来像这样 当我运行此查询时,应该不显示任何行,因为不存在具有value的行: SELECT * FROM tableName WHERE ID =‘101foo2’ 我得到的结果具有相同的ID,但没有单词 如果我的查询是如何显示具有ID的行 问题答案: 您正在混合类型。 是一个整数(或数字)。您正在将其与字符串进行比较。因此,MySQL需要确定用于比较的类型。使用什