【问题标题】:WAMP not displaying mySQL errorsWAMP 不显示 mySQL 错误
【发布时间】:2014-03-06 04:47:29
【问题描述】:

由于一些奇怪和奇怪的原因,wamp 没有显示数据库错误,我似乎不知道为什么,我知道它显示错误,因为我一直在使用 wamp 并且它之前显示错误,但是当我将它安装在最近新机器开始工作,它没有显示任何数据库错误,

例如,我在数据库表中插入,浏览器正在执行 php 脚本和 mysql 查询,但没有插入任何内容,经过 2 个小时的艰苦努力,我发现其中一个列名称错误,我记得那个mysql显示了一个数据库错误,告诉我该列在表中不存在,之后我理解了错误并纠正了它,但现在它没有显示任何内容。

代码是:

$query = "INSERT INTO campaign (campaignName, campaignPlatform, campaignStatus, 
                                campaignStart, campaignExpiry, campaignText) 
                        VALUES ('{$campaignName}', '{$campaignPlatform}', '{$campaignStatus}', 
                                '{$campaignStartDate}', '{$campaignExpiryDate}', 
                                '{$campaignText}') ";

$result = mysqli_query($con, $query);

这里,campaignStart其实就是campaignStarting,脚本处理过,页面是空白的,但是没有报错,没有mysql报错,也没有insert数据库,之前出现这种情况,mysql总是报错“此列不存在”,

谁能告诉我为什么会这样以及如何纠正它?

【问题讨论】:

  • 可能是您不理解手头的问题,我认为需要对 mysql 进行一些配置更正以显示简单的错误,例如我提到的在以前的机器上显示的错误我的
  • 这真的取决于你的 PHP 代码。如果您忽略错误,它们将不会显示。你在php_error.log 有什么收获吗?
  • 抱歉回复晚了,休息了,开始和朋友讨论,回复你的回复,请再看我的问题,问题是mysql错误没有显示,就像我在我的问题中说的,以前显示的错误,例如“测试表中的 foo 列不存在”;如果我写错了列的名称,则不会只显示空白屏幕
  • 请展示一些示例代码,其中包含用于访问您的数据库的 PHP 代码。也是您编写的代码或您从其他地方获得的代码。
  • 我已经编辑并插入了代码......

标签: php mysql debugging error-handling wamp


【解决方案1】:

mysqli_query($con, $query); 返回的所有内容都是

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries 
  mysqli_query() will return a result object. 
For other successful queries mysqli_query() will return TRUE. 

因此,如果您想了解发生的任何错误,您必须添加自己的错误处理逻辑。

我假设你之前使用的任何系统都有一些你只是懒得看的处理。

$query = "INSERT INTO campaign (campaignName, campaignPlatform, campaignStatus, 
                                campaignStart, campaignExpiry, campaignText) 
                        VALUES ('{$campaignName}', '{$campaignPlatform}', '{$campaignStatus}', 
                                '{$campaignStartDate}', '{$campaignExpiryDate}', 
                                '{$campaignText}') ";

$result = mysqli_query($con, $query);

if ( ! $result ) {
    printf("Errormessage: %s - %s\n", mysqli_err($con) , mysqli_error($con) );
    exit;
}

// proceed with normal code 

当然我会稍微形式化一下,并将所有错误处理逻辑放在一个函数或其他东西中,这样你只需要调用一个标准函数来处理任何数据库错误。

【讨论】:

    【解决方案2】:

    在我的情况下,它在更正以前的脚本后起作用。

    mysqli_err($con) > mysqli_error($con)

    【讨论】:

    • 之前的哪个脚本,以及如何解决您之前遇到的问题?
    • RiggsFolly: printf("Errormessage: %s - %s\n", mysqli_err($con) , mysqli_error($con) );
    猜你喜欢
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2014-07-11
    • 2019-05-19
    • 2017-01-08
    • 2014-01-21
    • 2014-12-06
    • 2015-08-11
    相关资源
    最近更新 更多