首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对于依赖于用户输入的长查询,如何在PHP中显示MySQL错误?

对于依赖于用户输入的长查询,如何在PHP中显示MySQL错误?
EN

Stack Overflow用户
提问于 2012-09-01 20:16:46
回答 5查看 156.3K关注 0票数 30

在PHP中,我正在尝试执行一个依赖于用户输入的长MySQL查询。但是,我的查询失败,并显示以下消息:

代码语言:javascript
复制
"Query Failed".

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

这是我的代码,

代码语言:javascript
复制
$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));
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-01 20:19:40

使用以下命令:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
echo mysqli_errno($this->db_link);

看看herehere

票数 30
EN

Stack Overflow用户

发布于 2012-09-01 20:21:10

使用函数die()

代码语言:javascript
复制
or die(mysql_error());
票数 8
EN

Stack Overflow用户

发布于 2012-09-01 20:27:17

这些建议不起作用,因为它们是针对标准MySQL驱动程序的,而不是针对mysqli的:

如果确实发生了错误,$this->db_link->error将包含该错误

代码语言:javascript
复制
mysqli_error($this->db_link)

都会起作用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12227626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档