Я был на это в течение нескольких часов, вот мой код, и его предполагается зарегистрировать пользователя, чтобы позднее они могли войти в приложение. Код работает отлично на всех углах, но, один я регистрирую пользователя, он не позволит мне зарегистрировать второго пользователя. Может ли кто-нибудь помочь мне, если возможно, найти причину?MySQL только регистрирует первого пользователя
<?php
header('Access-Control-Allow-Origin: *');
header("Cache-Control: cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 2097 05:00:00 GMT"); // Date in the future
function getConnection() {
$dbhost="localhost";
$dbuser="root";
$dbpass="";
$dbname="cybank";
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
try {
$conn = getConnection();
// Account Number Login
$aclenth = 8;
$accountNumber = substr(str_shuffle(md5(time())), 0, $aclenth);
$accountNumber = 'CYB-' . strtoupper($accountNumber);
//Pin Logic
$regpin = rand (1111 , 9999);
//Reg date logic
$regdate = date('Y-m-d');
$account_id = $accountNumber;
$device_uuid = $_POST['reguuid'];
$name_first = $_POST['regfname'];
$name_last = $_POST['reglname'];
$gender = $_POST['reggender'];
$username = $_POST['regusername'];
$password = $_POST['regpassword'];
$pin = $regpin;
$email = $_POST['regemail'];
$do_birth = $_POST['regdob'];
$do_reg = $regdate;
$address_1 = $_POST['regaddress'];
$city = $_POST['regcity'];
$country = $_POST['regcountry'];
$phone_home = $_POST['regphonehome'];
$phone_mobile = $_POST['regphonemobile'];
$last_login_date = '';
$account_status = 'Active';
$emailVerified = '0';
$cost = 10;
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = sprintf("$2a$%02d$", $cost) . $salt;
$hash = crypt($password, $salt);
// Create token to verify with
$tokenVerify = bin2hex(openssl_random_pseudo_bytes(16));
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO cy_user_accounts (account_id,device_uuid,name_first,name_last,gender,username,password,pin,email,do_birth,do_reg,address_1,city,country,phone_home,phone_mobile,last_login_date,account_status,emailVerified,tokenClient,tokenAdmin,tokenExpires,tokenVerify) VALUES ('$account_id','$device_uuid','$name_first','$name_last','$gender','$username','$hash','$pin','$email','$do_birth','$do_reg','$address_1','$city','$country','$phone_home','$phone_mobile','$last_login_date','$account_status','$emailVerified','','','','$tokenVerify')";
$conn->exec($sql);
} catch (PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
Вот таблица Mysql в вопросе:
CREATE TABLE IF NOT EXISTS `cy_user_accounts` (
`id` int(11) NOT NULL,
`account_id` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`device_uuid` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`name_first` varchar(150) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`name_last` varchar(150) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`gender` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`pin` int(10) NOT NULL,
`email` varchar(250) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`do_birth` date NOT NULL,
`do_reg` date NOT NULL,
`address_1` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`city` varchar(150) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`country` varchar(65) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`phone_home` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`phone_mobile` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`last_login_date` datetime NOT NULL,
`account_status` varchar(100) NOT NULL,
`emailVerified` int(11) NOT NULL,
`tokenClient` varchar(255) NOT NULL,
`tokenAdmin` varchar(255) NOT NULL,
`tokenExpires` date NOT NULL,
`tokenVerify` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
Можете ли вы уточнить, что «это не позволит мне зарегистрировать второго пользователя»? Вы не поняли ошибку? – Mureinik
вы не назначили ИИ для своего столбца id, так что auto_increment нечего. –
... вам нужно будет изменить этот столбец https://dev.mysql.com/doc/refman/5.1/en/alter-table.html –