我最近升级了服务器并进行了平稳过渡,但是我得到了“ 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.');
没有正确插入。如何为“活动”设置我的数据库设计是:
Database Design
我在这里做错什么了吗?我相信它也可能与我的数据库有关,但是布局的其他部分确实可以在该页面上没有此代码的情况下工作。
最佳答案
您的数据表有七个不可为空的列,并且没有默认字段值,但是INSERT语句仅指定五个列。您不能这样做,因为数据库需要知道在其他两列中要放置什么。将这些列添加到INSERT语句中,修改表以使这些列可为空,或者为这些列提供默认值。
您使用哪种解决方案取决于应用程序的业务需求。例如,您需要处理的列是articleid和articleTitle。在您的活动范围内将“活动”与任何特定的商品ID不相关是否有意义?如果是这样,则应将该列设置为可为空。
作为一个易于理解的现实类比,一个Employee通常必须具有EmployeeId,但不一定必须具有HeadquartersDeskNumber。也许他们是家庭办公室的巡回推销员。