数据被截断到列长度。
你的PHP应用在使用PDO连接MySQL时遇到了数据截断问题:
'pdo_code' => '22001',
'db_code' => 1265,
'db_error' => 'Data truncated for column'
function validateStringLength($value, $maxLength, $columnName) {
$actualLength = mb_strlen($value, 'UTF-8');
if ($actualLength > $maxLength) {
return mb_substr($value, 0, $maxLength, 'UTF-8');
}
return $value;
}
try {
$username = "这是一个非常长的用户名超过了限制长度";
$maxUsernameLength = 20;
$validatedUsername = validateStringLength($username, $maxUsernameLength, 'username');
$stmt = $pdo->prepare("INSERT INTO users (username) VALUES (?)");
$stmt->execute([$validatedUsername]);
} catch (InvalidArgumentException $e) {
error_log($e->getMessage());
}