PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Nizz
Отправлено: 10 Августа, 2017 - 15:32:31
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Всем доброго времени суток ув. форумчане. Переписываю потихоньку код с использованием PDO. Не получается функция которая при регистрации проверяет значение из БД по полю логина. Помогите пожалуйста откорректировать
PHP:
скопировать код в буфер обмена
  1.  
  2. function CheckReLogin ($login){
  3.     $db = getPDOconnect ();
  4.     $sql = 'SELECT COUNT(*) FROM users WHERE login = :login';
  5.        
  6.      $result = $db->prepare($sql);
  7.      $result->bindParam(':login', $login, PDO::PARAM_STR);
  8.      $result->execute;
  9.  
  10.      if($result->fetchColumn())
  11.       return true;
  12.          
  13.    return false;
  14.      
  15. }
  16.  


При вызове функции всегда выдает значение true.

А вот эта строчка было до использования PDO и все работало корректно
PHP:
скопировать код в буфер обмена
  1.  
  2. $Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT `login` FROM `users` WHERE `login` = '$_POST[login]'"));
  3.        if ($Row['login']) MessageSend(1, 'Данный логин уже занят.', Refferer());
  4.  
 
 Top
andrewkard
Отправлено: 10 Августа, 2017 - 15:51:07
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 918
Дата рег-ции: Нояб. 2014  


Помог: 19 раз(а)




Может все таки $result->num_rows > 0 вместо fetchColumn
и в этот запрос непонятно зачем Вам SELECT COUNT(*)
достаточно же узнать есть ли вообще запись

SELECT login FROM users WHERE login = :login' LIMIT 1

$sth->execute();
 
 Top
Nizz
Отправлено: 10 Августа, 2017 - 17:45:40
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




К сожалению все-равно результат возвращает не правильный
Может я что-то упускаю из виду ?
PHP:
скопировать код в буфер обмена
  1.  
  2. function CheckReLogin ($login){
  3.     $db = getPDOconnect ();
  4.     $sql = 'SELECT login FROM users WHERE login = :login LIMIT 1' ;
  5.        
  6.      $result = $db->prepare($sql);
  7.      $result->bindParam(':login', $login, PDO::PARAM_STR);
  8.      $result->execute;
  9.  
  10.  
  11.    if ($result->num_rows > 0){
  12.    
  13.       } else {MessageSend(1, 'Данный логин уже занят.', Refferer());}
  14. }
  15.  
 
 Top
andrewkard
Отправлено: 11 Августа, 2017 - 10:16:00
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 918
Дата рег-ции: Нояб. 2014  


Помог: 19 раз(а)




andrewkard пишет:
$sth->execute();

Nizz пишет:
$result->execute;

Вывод всех ошибок включали?
 
 Top
Nizz
Отправлено: 11 Августа, 2017 - 12:03:32
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Да, ошибка по не внимательности, execute(). не хватало скобочек. Все заработало. Мне с моей не внимательностью только и сайты писать.
(Добавление)
Спасибо вам за помощьandrewkard
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB