Я пытаюсь изменить сценарий регистрации входа, который использует запросы PDO для mysql.
Я добавил новое поле customer_id (int 11) в таблицу пользователей и сейчас пытаюсь заполнить это поле из сценария регистрации php. Ниже приведен скрипт для вставки нового пользователя, и я добавил
customer_id = $ custId, в строку запроса и ': customer_id' => $ custId, в оператор execute array.
Однако, когда я запускаю код, я получаю консольную ошибку несоответствующих токенов, но я добавил только 1 дополнительный параметр к каждому, так что я не понимаю, как это несовпадающие. Может быть, синтаксис неправильный? Я слежу за тем, что уже работало, и это выглядит правильно.
$userip = $_SERVER['REMOTE_ADDR'];
$custId = '45';
$query = "INSERT INTO users SET customer_id = $custId, username =
:username, firstname = :firstname, lastname = :lastname, password =
:password, userlevel = $ulevel, email = :email, timestamp = $time, ip =
'$userip', regdate = $time";
$stmt = $this->db->prepare($query);
return $stmt->execute(array(':customer_id' => $custId, ':username' =>
$username, ':firstname' => $firstname, ':lastname' => $lastname,
':password' => $password_hash, ':email' => $email));
ОБНОВЛЕНИЕ: это вся функция, которая работает до того, как я ее отредактировал
```function addNewUser($username, $firstname, $lastname, $password, $email) {
$time = time();
/* If admin sign up, give admin user level */
if (($this->functions->totalUsers() == '0') AND (strcasecmp($username,
ADMIN_NAME) == 0)) {
$ulevel = SUPER_ADMIN_LEVEL;
/* Which validation is on? */
} else if ($this->configs->getConfig('ACCOUNT_ACTIVATION') == 1) {
$ulevel = REGUSER_LEVEL; /* No activation required */
} else if ($this->configs->getConfig('ACCOUNT_ACTIVATION') == 2) {
$ulevel = ACT_EMAIL; /* Activation e-mail will be sent */
} else if ($this->configs->getConfig('ACCOUNT_ACTIVATION') == 3) {
$ulevel = ADMIN_ACT; /* Admin will activate account */
} else if (($this->configs->getConfig('ACCOUNT_ACTIVATION') == 4) &&
!$this->session->isAdmin()) {
header("Location: " . $this->configs->homePage()); /* Registration
Disabled so go back to Home Page */
} else {
$ulevel = REGUSER_LEVEL;
}
/* Hash password using PHP's inbuilt password_hash function -
currently using BCRYPT - as of 2.5 */
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$userip = $_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO users SET username = :username, firstname =
:firstname, lastname = :lastname, password = :password, userlevel = $ulevel, email = :email, timestamp = $time, ip = '$userip', regdate = $time";
$stmt = $this->db->prepare($query);
return $stmt->execute(array(':username' => $username, ':firstname' =>
$firstname, ':lastname' => $lastname, ':password' => $password_hash, ':email' => $email));
}
}```