PHP/MySQL | Выполняется ли insert при return
Тема закрыта by
DELETED
Причина: порешали толпой
Причина: порешали толпой

DELETED
Автор
5 октября 2019, в 10:11
Delete
<?php
public function signupHandler($login, $password, $email)
{
if (!$this->newUser($login, $password, $email)) {// ТУТ ВСТАВКА ПРОИЗОШЛА ИЛИ ВЕРНУЛСЯ ТОЛЬКО БУЛЕВ?
return $this->alert = 'Что-то пошло не так';
}
$this->setUser($this->db->connect->lastInsertId());
$this->alert = 'Вы успешно зарегистрировались';
return true;
}
protected function newUser($login, $password, $email)
{
return $this->pdo('insert into users set login = ?, password = ?, email = ?', [
$login,
password_hash($password, PASSWORD_BCRYPT),
$email
]);
}
Вопрос в комментарии к коду.
________
посл. ред. 05.10.2019 в 10:11; всего 1 раз(а); by Вероломство
вернёт тебе то, что будет после вставки
Если вызван метод или процедура то она отработает так же, как и должна в линейном вызове и вернуть она должна то, что возвращает всегда. Если php7 версия то лучше дополнительно заключить в кавычки, там интересные коллизии бывают

DELETED
Автор
5 октября 2019, в 10:21
Delete
Avenax (05.10.2019 в 10:14)
вернёт тебе то, что будет после вставки
вернёт тебе то, что будет после вставки
а не важно, что вызов при ифе?

DELETED
Автор
5 октября 2019, в 10:21
Delete
Вероломство (05.10.2019 в 10:21)
а не важно, что вызов при ифе?
а не важно, что вызов при ифе?
как раз нет, тут может сыграть логическое отрицание негативную роль потому перед отрицанием желательно ставить круглые скобки, то есть выражение заключать в круглые скобки. С функцией бывает пролазит а вот с объектом очень редко. Я незнаю почему так. И return если выражение а не скаляр то тоже в круглые скобки
Вероломство, то есть условие вот так
if (!( $this->newUser($login, $password, $email) ))
и тут return
return ($this->pdo('insert into users set login = ?, password = ?, email = ?', [
$login,
password_hash($password, PASSWORD_BCRYPT),
$email
]));
________
посл. ред. 05.10.2019 в 10:26; всего 1 раз(а); by Сибирский
if (!( $this->newUser($login, $password, $email) ))
и тут return
return ($this->pdo('insert into users set login = ?, password = ?, email = ?', [
$login,
password_hash($password, PASSWORD_BCRYPT),
]));
________
посл. ред. 05.10.2019 в 10:26; всего 1 раз(а); by Сибирский

DELETED
Автор
5 октября 2019, в 10:27
Delete
Сибирский (05.10.2019 в 10:24)
как раз нет, тут может сыграть логическое отрицание негативную роль потому перед отрицанием желательно ставить круглые скобки, то есть выражение заключать в круглые скобки. С функцией бывает пролазит а вот с объектом очень редко. Я незнаю почему так. И return если выражение а не скаляр то тоже в круглые скобки
как раз нет, тут может сыграть логическое отрицание негативную роль потому перед отрицанием желательно ставить круглые скобки, то есть выражение заключать в круглые скобки. С функцией бывает пролазит а вот с объектом очень редко. Я незнаю почему так. И return если выражение а не скаляр то тоже в круглые скобки
insert не возвращает объект - это же изменение, а не выборка, тут или false или true
Вероломство, так а ты неправильно индуцируешь вставку )) Надо affected_rows заюзать дабы определить прошло или нет :)
я бы вообще тут вернул либо объект пользователя либо хотя бы insert_id? оно бы и true было и какое то смысловое значение несло, ну это уже тонкости
________
посл. ред. 05.10.2019 в 10:32; всего 2 раз(а); by Сибирский
я бы вообще тут вернул либо объект пользователя либо хотя бы insert_id? оно бы и true было и какое то смысловое значение несло, ну это уже тонкости
________
посл. ред. 05.10.2019 в 10:32; всего 2 раз(а); by Сибирский

DELETED
Автор
5 октября 2019, в 10:32
Delete
Сибирский (05.10.2019 в 10:30)
Вероломство, так а ты неправильно индуцируешь вставку )) Надо affected_rows заюзать дабы определить прошло или нет :)
Вероломство, так а ты неправильно индуцируешь вставку )) Надо affected_rows заюзать дабы определить прошло или нет :)
мне надо вставку сделать и проверить произошла ли она и потом я в текущем соединении беру lastInsertId(), если true вернула вставка
как-то так
Стр.: 1, 2