我的 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/