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

来自php类报告的mysql错误报告%0

阎建德
2023-03-14

我试图通过一个类中的函数连接到MySql。同样的事情可以做得更容易,但这也是一次学习的经历。代码全部按预期工作,但是如果MySql查询失败,mysqli_error()返回空白,mysqli_errno()返回0。我在手动将数据输入mysql时发现了错误,并且它在db中是一个太短的列,但是我不明白为什么mysqli_error()和mysql_errno()都没有报告这个错误。提前感谢您的任何帮助。

<?php

class FrmAddProduct {

    protected function getDbConnection(){
        return new mysqli("localhost", "root", "****", "test");
    }

    /**
    *all variables are declares and assigned here
    *
    **/
    function commitSignUp (){
        $commitSignUp = "INSERT INTO Login ( `logTitle`,`logFirstName`, `logLastName`,`logLandLine`,) VALUE (\"$this->title\", \"$this->firstName\",\"$this->lastName\", \"$this->landLine\",)";
        if ($this->getDbConnection()->query($commitSignUp)){
            echo "The new product is added.";
            return 1;
        } else {
            echo "Mysql reported this error description: ".mysqli_error($this->getDbConnection()."<br>";
                echo "Mysql reported this error number: ".mysqli_errno($this->getDbConnection());
                return 0;
        }

共有1个答案

东方飞捷
2023-03-14

不管你在这里做什么都是完全错误的做法。您正在两次或三次创建连接实例。并且您期望在那里写入错误。

以这种方式更改您的代码

protected function getDbConnection(){
    return mysqli_connect("localhost", "root", "****", "test");
}

也这样做

function commitSignUp (){
      $commitSignUp = "INSERT INTO
                           Login (
                                     `logTitle`,
                                     `logFirstName`,
                                     `logLastName`,
                                     `logLandLine`,
                                   )
                            VALUE (
                                      \"$this->title\",
                                      \"$this->firstName\",
                                      \"$this->lastName\",
                                      \"$this->landLine\",
                       )";

            $conn = $this->getDbConnection();

            if ($conn->query($commitSignUp)) {
                echo "The new product is added.";
                return 1;
            } else {
                echo "Mysql reported this error description: ".mysqli_error($conn."<br>";
                echo "Mysql reported this error number: ".mysqli_errno($conn);
                return 0;
            }
 类似资料:
  • 错误日志对于发现程序中的错误是非常有帮助的,但是有些时候它也会将应用程序的结构暴露给外部。为了有效的保护你的应用程序不受到由此而引发的问题。你需要将在你的服务器上使用开发和生产(线上)两套不同的配置。 开发环境 为了在开发环境中显示所有可能的错误,将你的 php.ini 进行如下配置: display_errors = On display_startup_errors = On error_re

  • 1.1.2. 错误报告 没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。 由于出错报告的级别设定可以导致

  • 这就是Maven中的日志错误: 我在这里看到了一个来自Amedee Van Gasse的评论,它说了一些关于4.2.2版本没有jar的东西。 为什么1.02b版本附加到4.2.2?

  • 我的应用程序中有几个模块(项目和子项目)(在Gradle中),我还添加了插件:PMD、checkstyle、findbugs。这些插件在它们的目录中创建它们自己的报告(例如:PMD在目录“reports”中创建目录“PMD”并将其放入reports)。我想有一个报告所有这些插件。那是可能的?如果是,怎么做?

  • 当简单报表不适用于子报表时,此操作有效...

  • 需知 当你觉得发现了一个Swoole内核的bug时,请提出报告。 Swoole的内核开发者们或许还不知道问题的存在, 除非你主动提出报告,否则BUG也许将很难被发现并修复, 你可以在 Github的issue区 提出错误报告(即点击右上角绿色的New issue按钮),这里的错误报告将会被最优先解决。 请不要在邮件列表或私人信件中发送错误报告,Github的issue区同样可以提出对于Swoole