From ec3dac0595ea1a6c7071f16fca9e3373bd4027d4 Mon Sep 17 00:00:00 2001 From: Andreas Fischer Date: Sat, 30 Oct 2010 11:52:41 +0200 Subject: [PATCH] [ticket/9075] CPF Numbers fields: Prevent SQL error on registration page. When an administrator set a numbers field to default to 'not specified', a SQL error was caused on the registration page because it was tried to insert an empty string into an integer column. Because the column already supports NULL values, empty strings are now converted to NULL for custom profile fields of the type 'Numbers' before insertion into the data table. PHPBB3-9075 --- phpBB/includes/functions_profile_fields.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/phpBB/includes/functions_profile_fields.php b/phpBB/includes/functions_profile_fields.php index 3937cf9c21..78fe049f40 100644 --- a/phpBB/includes/functions_profile_fields.php +++ b/phpBB/includes/functions_profile_fields.php @@ -878,6 +878,11 @@ class custom_profile $now = getdate(); $row['field_default_value'] = sprintf('%2d-%2d-%4d', $now['mday'], $now['mon'], $now['year']); } + else if ($row['field_default_value'] === '' && $row['field_type'] == FIELD_INT) + { + // We cannot insert an empty string into an integer column. + $row['field_default_value'] = NULL; + } $cp_data['pf_' . $row['field_ident']] = (in_array($row['field_type'], array(FIELD_TEXT, FIELD_STRING))) ? $row['lang_default_value'] : $row['field_default_value']; }