我最近升级了服务器并进行了平稳过渡,但是我得到了“ MySQL Erorr”,并且确定了无法正常运行的原因。

这段代码:

        $date = date("M jS");
        $articleTime = date("g:iA T");
        $articleTime = str_replace('EDT', 'EST', $articleTime);
        $ip = getenv("REMOTE_ADDR");
        $insertYo = "INSERT INTO activity ( date, articleTime, action, icon, ip) VALUES ('$date', '$articleTime', '<strong><a href=\"/articles\">\Archives</a></strong> viewed on $date @', 'fa-archive', '$ip')";
        mysql_query($insertYo) or die('MySQL Error.');


没有正确插入。如何为“活动”设置我的数据库设计是:

php - 详细信息不存储到数据库中-LMLPHP

Database Design

我在这里做错什么了吗?我相信它也可能与我的数据库有关,但是布局的其他部分确实可以在该页面上没有此代码的情况下工作。

最佳答案

您的数据表有七个不可为空的列,并且没有默认字段值,但是INSERT语句仅指定五个列。您不能这样做,因为数据库需要知道在其他两列中要放置什么。将这些列添加到INSERT语句中,修改表以使这些列可为空,或者为这些列提供默认值。

您使用哪种解决方案取决于应用程序的业务需求。例如,您需要处理的列是articleid和articleTitle。在您的活动范围内将“活动”与任何特定的商品ID不相关是否有意义?如果是这样,则应将该列设置为可为空。

作为一个易于理解的现实类比,一个Employee通常必须具有EmployeeId,但不一定必须具有HeadquartersDeskNumber。也许他们是家庭办公室的巡回推销员。

10-08 09:10
查看更多