Поэтому я работаю над проектом, используя UserCake. Я добавил поля в таблицу «пользователи». Пока все отлично работает. У меня возникает проблема, когда вы регистрируетесь, она возвращается успешно, но оператор SQL не поместил данные базы данных в базу данных.
До сих пор я успешно добавлял необходимые поля, и я могу извлекать данные из этих полей, однако я не могу перенести данные в базу данных. У меня есть ощущение, что это связано с оператором bind_param, но я не уверен. Вот с чем я имею дело:
РЕДАКТИРОВАТЬ 9/30 17:00 >>> Единственная проблема на данный момент заключается в том, что данные не заносятся в таблицу.
$stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."users (
password,
email,
activation_token,
last_activation_request,
lost_password_request,
active,
title,
sign_up_stamp,
last_sign_in_stamp,
company,
address_1,
address_2,
city,
state,
zip,
paid,
first_name,
last_name
)
VALUES (
?,
?,
?,
'".time()."',
'0',
?,
'New Member',
'".time()."',
'0',
?,
?,
?,
?,
?,
?,
'0',
?,
?
)");
$stmt->bind_param("sssisssssiiss", $secure_pass, $this->clean_email, $this->activation_token, $this->user_active, $this->company, $this->address_1, $this->address_2, $this->city, $this->state, $this->zip, $this->first_name, $this->last_name);
$stmt->execute();
print_r($stmt);
$inserted_id = $mysqli->insert_id;
$stmt->close();
РЕДАКТИРОВАТЬ >>> Решена проблема пустого массива
Я звоню новому пользователю так:
$ user = new User ($ password, $ email, $ token, $ ActivRequest, $ passwordRequest, $ active, $ title, $ signUp, $ signIn, $ company, $ address_1, $ address_2, $ city, $ state, $ zip , $ paid, $ first_name, $ last_name);
РЕДАКТИРОВАТЬ >>>
ТАБЛИЦА uc_users
(
id
int (11) NOT NULL,
password
varchar (225) НЕ NULL,
email
varchar (150) NOT NULL,
activation_token
varchar (225) НЕ NULL,
last_activation_request
int (11) NOT NULL,
lost_password_request
tinyint (1) НЕ NULL,
active
tinyint (1) НЕ NULL,
title
varchar (150) NOT NULL,
sign_up_stamp
int (11) NOT NULL,
last_sign_in_stamp
int (11) NOT NULL,
company
varchar (50) DEFAULT NULL,
address_1
varchar (50) NOT NULL,
address_2
varchar (50) NOT NULL,
city
varchar (50) NOT NULL,
state
varchar (20) НЕ NULL,
zip
int (5) NOT NULL,
paid
tinyint (1) НЕ NULL,
first_name
varchar (50) NOT NULL,
last_name
varchar (50) NOT NULL
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = utf8 AUTO_INCREMENT = 3;
Поле Company
на вашем столе не позволяя NULL
значения, но вы посылаете его null
как я вижу в Вашем вопросе (раздел print_r ($ this)).
Таким образом, у вас есть 2 способа решить эту проблему,
company
поле в базе данных, и разрешить NULL для него.Других решений пока нет …