php - 违反完整性约束 : 1048 Column 'user_agent' cannot be null

标签 php mysql

我的 MySQL 数据库有一个名为 user_agent 的列。我通过 PHP 填写这个。有时这可能是空的。

我收到以下错误消息:

[12-Feb-2018 08:09:25 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_agent' cannot be null' in /home/user_name/public_html/folder/index.php:112

我读到我应该启用 NULL。

为什么这个文件不能直接为空?空字符串也是字符串,不是吗?

编辑:

这是我的 PHP 代码:

$ip = $_SERVER['REMOTE_ADDR'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$statement = $pdo->prepare("INSERT INTO log (ip, user_agent) VALUES (:ip, :user_agent)");
$statement->execute(array(':ip' => $ip, ':user_agent' => $user_agent));

似乎某些访问者没有 user_agent。

这是创建表语句:

CREATE TABLE `log` (
  `id` int(6) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ip` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
  `user_agent` text COLLATE utf8_unicode_ci NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

最佳答案

在创建语句中,此字段类似于

 `user_agent` text COLLATE utf8_unicode_ci NULL,

关于php - 违反完整性约束 : 1048 Column 'user_agent' cannot be null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48742894/

相关文章:

php - 找出在php中的表单中选中了哪些复选框

php - Laravel DB 失去连接(大概)

php - 标记为崩溃的 mysql 表

php - 谁在开发 PDO、mysql、mysqli 等 PHP 数据库扩展?

mysql - 如何将哑文件导入到 mySQL Server 上的 Azure DB,转储驻留在 blob 中。如何动态访问blob文件

mysql - 如何编写这个复杂的自连接

php - 在 pdo 数组中使用变量

php - 警告 : session_start() [function. session 启动] Wordpress 仪表板上的错误

mysql 如何统计给定时间段内特定时间的出现次数

演示模式 1 小时后 MySQL 数据库自动重置