$this->db->beginTransaction();
$this->db->query ('LOCK TABLES users WRITE');
$sql = 'INSERT INTO users (uname) VALUES (:uname)';
$sth = $this->db->prepare ($sql);
$sth->bindParam (':uname', $uname);
$sth->execute();
if ($sth->rowCount()==0) {
$this->db->rollBack();
$this->db->query ('UNLOCK TABLES');
throw new Exception('<strong>Oh snap!</strong> User name is taken! Try again.');
}
Я настроил пользователя в моей базе данных вручную, что называется «тест». И когда я создал пользователя под названием «test2», он работал. Но всякий раз, когда я пытаюсь создать третьего пользователя, я получаю rowCount = 0
.rowCount возвращает 0, даже если он не должен
uname
in db is varchar(15)
.
if(isset($_POST['regUser']) && isset($_POST['regPwd']) && isset($_POST['regConfirmPwd'])) {
if($_POST['regPwd'] == $_POST['regConfirmPwd']) {
$user->newUser($_POST['regUser'], $_POST['regPwd']);
} else {
$user->error = "<strong>Oh snap!</strong> The passwords don't match!";
}
}
Отправить информацию о сообщении моей функции newuser, и она останавливается на первом бите кода. Есть идеи?
+1 для информации и PDO. – L0j1k
Какая у вас структура? – crush
Вы ищете фактический запрос? 'echo' ваш полный запрос перед тем, как попробовать его в запросе в базе данных. – L0j1k