我试图通过一个类中的函数连接到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;
}
不管你在这里做什么都是完全错误的做法。您正在两次或三次创建连接实例。并且您期望在那里写入错误。
以这种方式更改您的代码。
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