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

标签 php mysql sql

我最近升级了我的服务器并实现了平稳过渡,但是我收到了“MySQL 错误”,并且我确定了到底是什么无法正常运行。

这段代码:

        $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.');

插入不正确。我的数据库设计如何为“事件”设置是:

enter image description here

Database Design

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

最佳答案

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

您使用哪种解决方案取决于应用程序的业务需求。例如,您需要处理的列是articleid和articleTitle。在您的应用程序上下文中,事件不与任何特定文章 ID 关联是否有意义?如果是,则该列应设为可为空。

作为一个易于理解的现实世界的类比,员工通常必须有一个 EmployeeId,但他们不一定必须有一个HeadquartersDeskNumber。也许他们是一个有家庭办公室的流动销售员。

关于php - 详细信息未存储到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37890923/

相关文章:

php - 无法使用 php-mysql 的面向对象风格访问 mysql 表中的数据

mysql:使用 INSERT INTO...SET 填充表时出现错误 1054

Mysql 比较单个表中同一行中两列的值

sql - 使用 Postgresql 高效查询最新记录

sql - SQL Compact 3.5 中的嵌套 SELECT 子句

javascript - 禁用输入表单,直到加载数据

php - 将自定义列添加到 laravel excel

php - 获取当月之前的总值(value)?

php - 按日期/月份分组

php - Cloud9 ide : how running php tests in debug?