Переписываю процедурный код в ООП. Столкнулся с проблемой очень странной... ООП код должен работать, но нет.. не работает. Прошу вашей помощи в сравнении. Может я где то что то не так написал? Вот оба кода - процедурный:
if(isset($_POST["loginUserEmail"])){ // Данные из поля
$email = mysqli_real_escape_string($connection, $_POST["loginUserEmail"]);
$password = mysqli_real_escape_string($connection, $_POST["loginPassword"]);
if($email != "" && $password != ""){
//Check are entered username and password matched
$sql = "SELECT * FROM accounts WHERE email = '$email' AND password = '$password'";
if(mysqli_num_rows(mysqli_query($connection, $sql)) > 0){
echo 1;
}else{
echo 0;
}
}else{
echo "Оба поля обязательны.";
}
}else{
echo "Успешное соединение";
}
А это ООП который я написал:
if(isset($_POST["loginUserEmail"])) {
$email = $_POST["loginUserEmail"];
$password = $_POST["loginPassword"];
if($email != "" && $password != "") {
$accounts = $db->query('SELECT * FROM accounts WHERE email = ? AND password = ?', $email, $password);
$accounts->numRows(); // Подсчитываем кол-во строк.
if ($accounts->numRows() > 0) { // Больше 0 сообщаем 1, пускаем в игру
echo 1;
}else{
echo 0;
}
}else{ echo "Оба поля обязательны.";}
}else { echo "Успешное соединение"; }
Что не так с моим кодом? Помогите пожалуйста. Может я в синтаксисе ошибся?
emailиpassword, реализовали бы методload()в котором из$_POSTзаносили бы значения полей, реализовали бы методcheckUserAccountв котором бы проверяли в БД наличие такого аккаунта... И вызывали бы уже только методы этой модели - я бы согласился на ООП. А так я вижу практически идентичный хаотично написанный код. Уж простите за вольность мыслей. Попробуйте все же почитать что такое ООП и как им пользоваться. – Nov 09 '21 at 02:54numRowsв mysqli нет. А значит ошибка обеспечена..................... так что не надо придумывать что поможет, а что нет - прочитайте все способы нахождения ошибок для начала и попробуйте...........................и ещё раз скажу про numRows --- прочитайте документацию.Нет такого метода в таком виде...................."в ООП движок пишет в консоли NULL" --- включить отображение ошибок + отладка! – Алексей Шиманский Nov 09 '21 at 05:47public function __construct($dbhost, $dbuser, $dbpass, $dbname, $charset = 'utf8') { $this->connection = new mysqli($dbhost, $dbuser, $dbpass, $dbname);– Василий Nov 09 '21 at 05:54numRowsвmysqliнет, а естьnum_rows. что и описано внутри функцииnumRows, которая относится к реализации логики в классе DB. А сама она имеет отношение кmysqliровно такое же, как балерина к стройке. Удачи в познавании. – Алексей Шиманский Nov 11 '21 at 08:26